Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I’m building my portfolio as a freelance graphic designer, and I develop designs for mobile apps. I’ve got android app development down, but I’m not sure if my knowledge of iPhone application development extends to the newest iO7 operating system. I’ve noticed that whenever a new operating system is available for iPhones, some of the apps for the previous system don’t work anymore. Does anyone know how I can keep up with the nuances of the newest iPhone operating system?
I understand what you're going through as I was myself in a position like yours.
So, what you need to understand is that the iOS development standards never completely change. The language i.e. Objective-C will always be the same. Now, there are of course improvements.
The most important keyword for you to know is deprecation. If a method or a class is deprecated, it means that it works for older versions of iOS but not for the latest one. Almost 99% of the time, that method or class is replaced by a newer, better one and it is clearly mentioned in the documentation.
So, I'd recommend that you start out by learning iOS 7 development only. Believe it or not, the major change in iOS 7 is mainly its looks and the core development concepts still remain in place.
Optimizing your app for previous operating systems is mostly a no-brainer. There are several tutorials online and its nothing a through Google search can't solve.
As someone who also came from an Android background, I can understand the urge to sometimes find certain similarities between the development process. There are nothing but misconceptions and don't think of such thing while making your app otherwise you might run into some very big problems.
Hope this helps you.
If you are an Apple developer, there are many different resources at you finger tips such as the new "Tech Talks" that explain new things that are coming into play for IOS Development. However, if you are not a developer there are still some ways to keep up with it such as watching the annual keynotes and checking their website regularly. One way that is possibly the most effective is to use it. Also it is always good to explore Xcode and things like the object library. When you preform the update on your iPhone, read the details of what is new in this update. Hope this helped
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I want to build an application for all platforms but I wonder!
What is the difference between ionic-Framework and Xamarin.Forms and,
Which is better to build an application for all platforms?
In the hands of skilled engineers, Ionic and Xamarin are both exceptional cross-platform development assets, which, compared with building native apps for two or more platforms, will save your business both time and money. Any decision about which one to use, though, should be subject to rigorous assessment of your needs, budget, and development objectives.
If app quality is a priority, you’re integrating with a lot of preexisting .NET architecture, and/or you need to build apps for a wide variety of platforms and versions, Xamarin will almost certainly be the best fit.
For smaller or less frequent projects on restricted budgets, Ionic will provide you with a fast and effective route to functional if unspectacular mobile apps for iOS and Android devices.
Depending on your resources, and whether you will develop apps in-house or with the help from external development companies, you might even wish to utilize both of these popular frameworks. Neither one is particularly costly to implement, especially since Microsoft started bundling Xamarin for free with the Visual Studio Community edition and Xamarin Studio (for Mac).
I think it mainly depends on what you want to do in your application.
If all you want to do is pushing some data and images (e.g. create a shop platform) i don't see any reason, why ionic wouldn't do the job and probably you'd see results a bit faster, as you don't need to struggle with a lot of native adaptions (such as file system access, etc...), though I don't think that choosing xamarin would set you back in terms of X months more.
However if it comes to using native features, such as camera, gps, sensors, whatever you will probably be limited to what the ionic api offers and I don't know how long the turnaround times will be until new features which may appear in the future are getting implemented into the framework.
Performancewise I am honestly sceptical if that mix of html, css and javascript/jquery will be anything comparable to what xamarin can get you to, as Xamarin actually produces an app which can compete with apps written natively.
I am not sure how deep you can get "under the hood" with ionic, though I know that with xamarin, you can actually go very deep and develop features that can use the native code of your target platform.
Actually by looking at the user base (or better to say the amount of questions here on stack overflow) one might be tempted that ionic has more questions than xamarin.forms, however that doesn't take into account that actually any question about xamarin, xamarin.forms, xamarin.android, xamarin.ios and c# might hold relevant answers and support for your upcoming problems. However to be fair, also ionic has quite an impressive amount of q&a answers posted here, so i would say that is a draw.
My conclusion would be: If you need to create a data-pushing app fast, you could use ionic, however if you need performance, native methods and want to be able to use particular native features, Xamarin would hold that door open for you.
Disclaimer: I have been developing apps with xamarin forms for about 5 years now and have never used the ionic framework at all and therefore my knowledge about ionic is limited to what I read on summaries. Probably my answer might omit particular benefits that ionic might offer and I really hope that a more experienced ionic developer might have something beneficial to add.
However, If you were asking about my personal advice, My answer would be: Use Xamarin
We had to answer this question about 18 months ago. For us the core question was if the app also needed to be deployed to a web environment. In our case we needed to support the same functionality in a native iOS/Android app, as well as a website (for the features that the web can handle). In that scenario Ionic is the clear winner.
If you don't have to worry about web, then I think Xamarin is a great option. I'd also be checking out Google's flutter too, which is a newer cross-platform option (again assuming no web needed).
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I have worked some with Cocos2d for iPhone and find it delightful. I am starting another project, and have stumbled across Cocos2d-x, a C++ port. I'm tempted by the notion of being able to (with consideration) build for multiple platforms at once. I'm equally comfortable with Obj-C and C++, and am not looking for comparisons between the two languages unless it's specifically related to working with Cocos2d.
Has anyone worked with both versions of the engine, and can you comment on specific pros and cons of the two? Is Cocos2d-x "finished"? Reliable?
The lure of multi-platform builds are a nightmare in disguise. Any web designer will tell you horror stories of trying to juggle IE with Firefox with Chrome with whatever at the same time. You will not suddenly earn more sales because you were able to launch on Android/iOS/etc on day one. More than likely, your attempts to multi-platform will restrict your app in ways that will kill it on all platforms. Your best bet is to start with one platform, finish that, then build for others. Your end product will thank you.
There are no pros/cons to Cocos2d-x unless you like C++ more than Obj-C.
I would agree that you should focus on developing for a single platform until you have a good solid product out there. However many a developer that does this after the fact realizes how much effort and additional cost is then needed to completely rewrite the game on a new platform. Would a little upfront thought you can minimize the need for rework and thus minimize your cost once you are ready to port your game. Android is too big of a market share to completely ignore it; in my mind Cocos2d-x is the way to go if you like Cocos2d.
I don't know about cocos2d-iphone but I do know about cocos2d-x.
Pros:
cocos2d-x uses C++ (well, not really a pro for some but this is a pro for me)
You can easily deploy to different platforms, assuming you've set it up correctly (see below)
It supports Lua and JavaScript, for an even easier coding
Cons:
cocos2d-x has little to no documentation. You would rely on the test projects and the API Reference. Thank god there are people like Nat Weiss who made learning easily available to users. (http://paralaxer.com/cocos2d-x-book/)
Setting up your project to work on every platform is a hassle. You'd have to be good at multiple IDEs as well as command line/terminal commands
Most of the scripts that come with the library to create new projects are not multi-platform, meaning, you still have to set it up individually for all platforms
Integrating third-party SDKs like Facebook, ads, and other stuff takes a lot of time since you'd have to implement them for every platform you are targetting
I am developing with cocos2d-x for iphone and it is working just fine for me. Only issue you may find is that the api is always slightly behind the cocos2d for iphone version. However api itself is reliable and a facsimile in most respects to the original.
If you're serious about porting to other platform even though you will try to succeed on a single platform first, cocos2d-x is the way to go, because you will not need to rewrite the gist of your code in some other language later (ie port from c++ to objc or from objc to c++).
I have worked with both Cocos2d and Cocos2d-X for iPhone development only (so far). I worked with Cocos2d for about 1.5 years and have moved on to Cocos2d-x in the last six months or so. At first, I was unwilling to move into Cocos2d-x because, in my opinion, it was still maturing. Coco2d 2.0 had come out with a lot of changes and I knew it was well deployed and tested. Coco2d-x seemed like it was still in flux. This has changed and I have decided to use Cocos2d-x for the duration, as long as it continues to be supported.
Both frameworks appear to work as advertised, in general, and give good performance for what I am working on (you can see some examples here).
I am comfortable with working in both the Object-C and C++ world. I don't know if I will ever port my "stuff" to Android, but it is nice to have the option.
However, the BIG deciding factor for me was reusability. I build lots of components and widgets that I reuse in other projects. If I developed for iOS only, Objective-C would be the way to go. But I work mostly in C++ and I don't want to have to recode all the ideas from one language to another every time I want to bring a tested tool out of the tool box.
I think this is going to ring true for any framework you choose to use for your development. If you have the choice, go with the option that will give you the best bang for your buck today, and down the road.
I am currently working on cocos2d-x and I am very happy with it. My advise would be to start the project on one Platform (I prefer IOS). And when you have successfully launched on one platform, start on another.
If your game becomes successful, at the end you have to launch on another platform too. So its best to plan ahead.
I would stick with Cocos2D-iphone. Focus on the product from the bigger community with a lot more resources. When you are ready to port, then use apportable to compile your app for android when it's done.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
Currently, I plan to port a Java desktop application, to the Android platform. Besides official Android SDK, I also take a look on, as it will be a plus, if it is able to run in iphone with minimal effort.
http://www.rhomobile.com/
http://www.phonegap.com/
appcelerator.com
Those cross platform frameworks seem nice. However, I was wondering, what are the limitation on those frameworks?
Will they still have the same look and feel as native Android application? (Or a native iPhone application)
Is there any difference in the speed and responsiveness of the application?
Are they able to provide same set of GUI components as in Android SDK? (Or iphone's)
Limitation access to I/O, network resource, hardware?
Ability to use threading?
From my experience (my background being native mobile app development), we get a lot more control with native apps vs framework based apps. That advantage has greatly reduced in android and iphone platforms, however there are a few other things to condsider:
If it is a one off app then you are
better off working with the
frameworks you mentioned, they
provide all the features you asked
about and for a beginner, are a bit
faster to develop.
If you are going to do multiple apps
then it makes sense to have a custom
framework for your needs. In this
case you can reuse parts of your
Java desktop app and absorb them
into your framework. You will
probably need to create iphone and
android/java versions.
If you create your own framework,
you can also incorporate other
software development best practices
like CI more easily when compared to
off the shelf frameworks.
The UI components are different for
Android and iphone and you are
better off having them different as
they have quite different
sensibilities and interaction. So it
may not be a good idea to aim for
one to one mapping.
Speed, performance etc are not an
issue, same for threads support.
Hope these points help in your decision making process.
This post will be immensely useful for you :)
Comparison between Corona, Phonegap, Titanium
As for threading - since both PhoneGap and Titanium (I cannot speak to RhoMobile) allow you to hook into native code from JavaScript (and the reverse) I see no reason why you cannot multi-thread an application using one of these technologies.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
[2015 update: I think it's safe to say that Flash is rapidly dying. Don't go there. Gotta say though, during its brief moment to shine, Flex was actually a really lovely datavis technique.]
I'm interested in developing for the iPad and iPhone, but I'd prefer not to learn Apple's whole development stack (and good golly, I sure don't want to go back to manual memory management). Oh, sure, I could learn it, but I don't have that level of commitment to the environment at this point. I've got professional experience with Flex already, so I'm intrigued by Adobe's move to make Flash/Flex compile to the iPhone and iPad. My question is: how promising of a development path will Adobe's Slider be? Are we likely to see Slider publicly available in a reasonable timeframe (Adobe: "An early mobile branch of the Flex framework is expected to be available in 2010")? Are we likely to see reasonable performance? Are there development hurdles that haven't become clear yet? Heck, is it all just vaporware? There's pretty limited information available so far, as far as I've seen, but I'm interested in people's predictions, even if they're speculative.
Hopefully you'll see some info on Slider soon that will give you a better sense of the timeframe. Flex 4 will be released soon and once that happens you should start to hear more concrete info about Slider.
One thing to keep in mind is that Slider will be based on the Flex 4 architecture. To give you an idea of how that performs you can check out James Ward's blog post - http://www.jamesward.com/2010/02/21/flex-performance-on-mobile-devices/ - he's got a couple of videos that show a Flex 4 list running on a Nexus One.
This isn't iPad/iPhone, and Flex is NOT something Adobe recommends for mobile, but this basic example works pretty well. And it should give you an idea of how Slider might look/behave.
=Ryan
ryan#adobe.com
Interestingly, Apple's new developer agreement calls into question whether apps built with Flash/Flex will be allowed:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
Adobe's cross-compilation tech is not vaporware (for Flash, anyways-- haven't seen as much re: Flex). And they would be unlikely to invest so much in it if they thought it would get torpedoed on day one. That said, you must draw your own conclusions about your long-term reliance on it, and your interest in building on a non-native toolchain, both in terms of what you can get out of the environment, and the support channels you'll need to use (e.g. not Apple) when stuff doesn't work.
Some people seem to be successfully using Mono touch, which shares (some) similarities.
There are two issues with this:
Steve Jobs says he isn't going to support Flash on iPhone or iPad.
Adobe's next rev is going to allow you to develop in Flex and port to iPhone app format.
Do the math.
If you want to start iPhone, iPa or Mac OSX development, I'd suggest learning Objective-C. It'll probably take less time than waiting for (official) Flash support on those devices ...
Take it the other way around, would you use Objective-C to develop a Flash or a Flex app?
Flex can now compile iOS applications (and so run on the ipad and iphone)
http://gregsramblings.com/2011/06/20/finally-its-here-flex-on-ios-android-and-blackberry-playbook/
http://gregsramblings.com/2011/04/26/convincing-developers-that-adobe-flex-rocks-on-android-ios-and-playbook/
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have found the "Getting Started" documents for developing apps on iPhone.
I wanted the community's opinion on what I should know/learn (in terms of languages or concepts)?
How long would it take for a moderate programmer to learn and build an app that manages a list, connects to certain websites, etc?
How to get an app I made onto the iPhone? Just ZIP then install with .ipa file?
I wanted the community's opinion on what I should know/learn (in terms of
languages or concepts)?
You will be using Objective-C and Cocoa. These are fairly strange concepts to crasp if you have not done MAC programming before, but after a short while you will probably fall in love with them. The most important concept to remember with iPhone development is memory management as the device has no concept of garbage collection.
How long would it take for a moderate programmer to learn and build
an app that manages a list, connects
to certain websites, etc?
Not too long. There are a multitude of example applications on the internet, and many helpful folk on stackoverflow.com
How to get an app I made onto the iPhone? Just ZIP then install with
.ipa file?
You will need to download the SDK, create an app using xcode on the mac (or similar environment for windows if there is one) - you can test with simulator without giving apple anything, but in order to legitimately test on device you need to become an apple developer.
However If you jailbreak your device, you will be able to follow one of several methods to get your application on the iphone bypassing apples restrictions.
The whole iPhone UI development (UITableView etc) is based around the MVC (Model-View-Controller) pattern, so a good understanding of that is vital.
Memory management is also vital and can be a little cumbersome to start off with. I have not long started so can not give you a good description here without making a fool of myself :). Apple Memory Management
Finally the development environment can be a little wierd to start off with. Especially hooking up the view controller and interface elements. So check that out.
Then its basically looking through the tutorials on the iPhone developer website and the internet to learn the intracacies of the different UI elements and controllers (tables, textboxes etc).
You will need to pay for the iPhone Developer program to legally use your iPhone to debug your applications (although the Xcode dev environment comes with a simulator). Submitting the application to the app store allows access by everyone. Full details for doing this are available after paying your money. There are other ways you can get apps on the iPhone but I will not provide details for doing that - search the internet.
I would say that looking through the documentation and following tutorials will get you far enough to start building applications. This should not take to long. A good book may also help you out here, try the iPhone Developers Cookbook, which gives good well discussed and broken down examples about specific issues and broader coverage of things like tables etc.
Objective-C. Pay close attention to memory management, i.e., retain, release and autorelease.
Took me about a month (part time) to get something that pretty much worked. And then another month to refactor after learning what I'd done wrong the first time. This was while the NDA was in place so it would probably be easier now.
You need to join the iPhone Developer Program. Installing a development app is just a matter of running from XCode once you have you certificates sorted. (Check the iTunes Connect documentations. It's pretty good.)
Installing on someone elses iPhone is a matter of figuring out ad-hoc deployment (hard) or uploading to iTunes (easy).
First of all: buy a mac if you don't have one already, the windows tooling pipeline is basically non-existant. And trying to run OSX on non-apple harware is illegal in most situations.
Download the iPhone SDK. http://developer.apple.com/iphone/ should have everything you need.
Objective-C is a little bit on the strange side but a moderate programmer should be able to pick it up quite quickly.
Installation: i have no idea sorry...use the app store ;)
Learn objective C and work with Cocoa. There are far more examples of that floating around than iPhone code. Depending on what environment you are used too, Xcode and the experience of developing for the iPHone can be quite a change so get ready to buy some books and spend lots of time scratching your head!
Learn how to navigate Apple's docs.
For example UIView Class Reference.
Took me a little while to get savvy. XCode also has an excellent documentation browser integrated into the IDE. Once you can translate what the docs are telling you into code, the whole API opens up.
Use the Research Assistant in XCode. (Under Help Menu) That thing rocks my world. Highlight a class like ABRecordRef and it will give you a quick synopsis of what it is and how to use it, with links to the reference docs.
The one bad thing about Apple's docs is that they don't have clear examples of how to call a method in the discussion of the method. This is a glaring oversight, IMO. So many time I just wish there was a simple example for how to use something and I wind up going to Google for it.
The above information is quite good, but I'd add that getting familiar with the documentation within XCode is very valuable. This means you need to go to the DOC SETS part of the Developer Documentation window and make sure you have the documentation for the iPhone OS you're coding for. I spent a bunch of time writing code that depended on methods in NSObject that are available in Cocoa but not on the iPhone OS.