I've only just gotten started, but I figured I could give a look into some of the pitfalls a beginner might encounter. The first, and perhaps most important, thing to consider is that you need to cough up $99 for the privilege of writing code on an iDevice. This seems a bit asinine, but I guess it is what it is. Everybody wants a piece of the pie in the Apple world, and they can get away with charging for the privilege of developing code for their ecosystem.
The next thing to consider is the nature of that ecosystem. I'd say the biggest hurdle to getting me into iOS development was the language. Objective-C was (is) an unwieldy leviathan loaded with strange details and syntactic qualms. Once i made the jump to Java, I never found myself missing the pointers and explicit references of yore. Every time I'd get started on an app, I'd start writing code and end up so frustrated that I'd just abandon my project and move onto something less productive but more gratifying.
Swift has really changed all of that. It looks a lot like JavaScript or Python and does away with the old fashioned ceremony that plagued Objective-C. The really good news is that Apple is reportedly stepping away from Objective-C completely. This means that the entire ecosystem will be accessed via a shiny new language.
Not all of this is wine and roses, though. My first move was to procure a copy of AppCode, JetBrains' answer to the pitfalls of writing Objective-C (and Swift). As I've said many times in the past, JetBrains is really the premier shop when it comes to delivering tools that make programming pleasant. The refactoring is fast and seamless, and the UI is very intuitive. My past experience with XCode, which is the stock Apple IDE, was a lot less friendly than I'd like. Much like Objective-C, it feels like something from the '90s. That or there are just a lot of assumptions built in to tailor to a long-suffering development community. Either way, I figured this would all change with the installation of AppCode.
There's good news and bad news to this. The good news is that AppCode works just like IntelliJ. It's a great tool as one would expect. There's the full complement of refactoring tools and the lovely Darcula color theme. It's also got an integrated UI composer, which is relatively new. The good news, unfortunately, sort of ends there. I'm guessing this is just a side-effect of Apple having a "closed" ecosystem, but AppCode can't function without XCode. My initial take is that it taps into it for things like the UI composer and the other settings that it needs to operate.
Where things start to get cool, however, is when you can have a barebones app running on your phone within seconds. To get there, however, you have to register your device on Apple's developer site. And then you need to refresh your XCode configuration. Then you're good to go.
I'll do my best to document my (mis)adventures as I get my first app out into the App Store. The app is a simple thing that will allow bee-minded folks (like yours truly) to document where bees are seen feeding. All it will really do is upload a photo and allow fellow bee-minded folk to view the sort of plants that bees seem to like. It's not very sexy, but it's an idea.
I do apologize for my long absence. It's been a pretty eventful few months, filled with more Groovy shenanigans, a lot of fun with Mongo and some nodeJS too. I'll try to get into some of those exciting topics soon.
Where things start to get cool, however, is when you can have a barebones app running on your phone within seconds. To get there, however, you have to register your device on Apple's developer site. And then you need to refresh your XCode configuration. Then you're good to go.
I'll do my best to document my (mis)adventures as I get my first app out into the App Store. The app is a simple thing that will allow bee-minded folks (like yours truly) to document where bees are seen feeding. All it will really do is upload a photo and allow fellow bee-minded folk to view the sort of plants that bees seem to like. It's not very sexy, but it's an idea.
I do apologize for my long absence. It's been a pretty eventful few months, filled with more Groovy shenanigans, a lot of fun with Mongo and some nodeJS too. I'll try to get into some of those exciting topics soon.