Monday, September 19, 2016

Developing Apps for a Living: Pro Advice for Beginners

If programming is your vocation but you are not sure how to start and which language to choose, check our tips. A professional iOS developer working for a top full-stack development company shares his advice with those who are making their first steps in the profession. 




Let’s start with a few tools that could help someone who is new to iOS app development.
If you intend to get into iOS programming, first you need to set up a development environment. To create apps for any of the Apple’s products, irrespective of whether it’s macOS, iOS, watchOS or tvOS, you need to run macOS and your default IDE will be Xcode, which can be downloaded from here. Start educating yourself with the official Apple Developer resources, which can be found in abundance on the company’s website: getting started tutorials, videos, guides and sample code, etc, and then proceed with your self-education following other industry experts that contribute to the development of iOS community. My personal choice is Ray Wenderlich’s Tutorials.

The key programming languages for iOS environment are Objective-C and Swift. Choosing between these two as a language to start with, I’d suggest that you go for Swift. It has clearer syntax and will be easier for beginners to jump-start their professional path in iOS development. It’s actively promoted by Apple itself as a go-to language for its products. Even if you increment existing functionality of an app written in Objective-C, you won’t have to bother as the languages work together without a hitch. Apple offers a plethora of resources to help you master the art of Swift programming, and has recently treated the community and students to a fun gamified way to learn the Swift basics and more with its Swift Playgrounds app.

Starting with iOS development career, you also have to remember that Apple has created a distinctive visual culture and aesthetics around its brand and that they zealously stand for their UI principles, interaction patterns and snazzy look and feel of apps created for their devices. That’s why, get into all of the ins and outs of iOS Human Interface Guidelines and a rather rigorous App Store review process right off the bat.

Lastly, if you set off as an indie developer you have to get to grips with apps economy and monetization strategies in order to get your foot in the iOS dev door and get the piece of the iOS market pie.

Why should someone get into iOS development?
Obviously, apart from such financial aspects as developing for a mobile ecosystem that allows you to earn about $ 10,000 more on average than creating solutions for other mobile platforms, you’ll get into the realm of one of the most popular mobile OSs on the planet and will be building solutions for the ecosystem that now powers more than a billion devices around the world. You’ll become part of a huge community of tech peers, your apps will be used by a lot of people, and you can be sure that in the foreseeable future you’ll be crafting apps for products that remain at the leading edge of the tech industry, upheld by the recognized trendsetter that primes the innovation pump.

What does the future hold for apps?
The notion of “an app” itself has extended to embrace ever more interesting contexts. When we talk about apps, the story is not limited to apps that reside on our mobile devices – we have apps on our TVs, we have apps in our onboard car computer systems, we have apps for our wearable accessories, we have apps that power our home appliances. And all of these apps can communicate with each other if we’d like to. Just think of those endless opportunities that the future holds for the apps market!



How has Swift improved app development? 
The language is easier to grasp, that’s why, the entry barrier for developers is lower as well. It’s also easier to read and maintain and requires less of actual coding than with Objective-C. Swift is faster, as you can get from its name :) , safer and simplifies memory allocation process with Automatic Reference Counting for memory management. On top of that, along with the official support from Apple, the language gets contribution from the outside tech community as it has been made open source. All of this facilitates the growth and rapid development of this programming language. No wonder that according to Stackoverflow survey results for two years in a row Swift remains among the top 5 programming languages loved by the techies.

Speaking of the status of the iOS dev industry…
Yeah, the last Apple’s WWDC that took place this June revealed some Apple’s plans regarding the App Store future that are believed to bring about major changes to the app economy and are thought to democratize the app market making it easier for independent developers to turn their craft into a profitable business and use their programming talent and passion to earn their living. Following the trend of sharing economy and a service-focused business model booming at the moment, Apple has introduced subscription-based monetizion assuring the community that it will raise developers’ profit share from 70 to 85 per cent after the first year of app subscription, thus incentivizing the makers to aim for user retention. They also claimed to reduce the average app review and approval time to 48 hours, and in some cases to 24 hours at best, which is indeed great news! Finally, Apple introduces an ad program for the App Store with an uncompromisable algorithms that are said to be impossible to be gamed in an attempt to gain irrelevant visibility. This will help indie developers get through to their users. The program is available for free testing until this fall. Along with paid search the company is aimed to improve the discoverability of apps by providing some extra tweaks such as tuned featured tab that filters out already installed apps and a simple 3D-touch app suggestion mechanism. The goal is to provide better search experience for iOS users.

Is there a certain job stability with this skill set?
The knowledge of the iOS platform and Swift won’t lock you solely into the mobile ecosystem, it gives you access to the whole gamut of Apple devices from Apple TV, to Apple Watch, and don’t forget about HomeKit and countless ideas for connected accessories and home automation apps. Apple’s policy from the very inception was the unification of the ecosystem, that’s why it is not hit by a fragmentation issue like, for example, the Android ecosystem. Having mastered iOS development, you can hone your skills further embracing the rest of Apple’s platforms and choosing any direction you like for your programming career. Work hard, aim big, go PRO and create awesome apps for the iOS ecosystem!