Fernando Rodríguez: “In app programming start with iOS and then go Android if you succeed”
Yeeply recently had the opportunity to speak with Fernando Rodríguez and interview him for our blog to get an idea of his views on app development, mobile app programming and training. He pointed out to us some key aspects to matters regarding the industry.
Fernando Ballester: First of all, let us know a little more about you… Who is Fernando Rodríguez exactly? And how did you get to become who you are?
Fernando Rodríguez: I’m a programmer, besides being co-founder and instructor at Agbo Training − where we teach in-person and online courses on iOS and Android −, instructor at Big Nerd Ranch and mentor at the Talentum Telefónica programme. I landed on the training field by chance and it has surprisingly proved to be something I love. However, I am still trying to achieve the perfect balance between time devoted to programming and teaching.
FB: As a developer, what are your impressions on the mobile app development industry? Are apps here to stay or will they be a short-lived technology?
FR: All technology is relatively short-lived and in our market few things last longer than 10 years. That being said, I think we are still at the beginning of a new cycle: one in which PCs will follow the path set by MS-DOS and Dodo. We will increasingly be using a wider variety of devices instead of the current trend of concentrating all our life and communication in just one device.
The widespread use of tablets & smartphones, as well as of new devices like wearables, Google Glass, Oculus, etc., will impact PCs the same way as PCs impacted Mainframe. Apps are here to stay for a long time and they will end up replacing web interfaces − even those of the most used websites. Currently, Facebook is already being used mainly through its app. This is a trend that is set to grow on a continuous basis.
FB: From your experience, which is the most profitable operating system for app programming? And which one is the most popular and widely used? Are they the same?
FR: Without any doubt, iOS is the most profitable and the one that any freelance developer or start-up should be addressing at the beginning. According to Paul Graham − from YCombinator − all start-ups wanting to obtain investors must have nowadays an iOS component. Likewise, Phil Libin − Evernote’s CEO − indicates in an interview which are his company’s most profitable targets. According to Phil, web app users are the least profitable while OSX (Mac) users are the most loyal and profitable. However, iOS is the niche providing the “biggest bang for the buck” (i.e. the greatest return on investment). All others fall in between.
The “profitability prize” may be awarded to iOS but the “brute force prize” entailing the most widespread use belongs to Android. However, the latter’s usual conception as having a huge but worthless market share is gradually fading away for app developers. Android is growing very much and is doing so also beyond the smartphone and tablet industry, as it’s getting engaged in digital cameras, TVs and other devices. Interestingly enough, Android is achieving what had been one of Java’s initial goals: to become a universal programming language for devices other than desktop computers. Umpteenth time lucky?
I think that it’s imperative to begin with iOS nowadays and bring your app to Android later if it has been successful. We must therefore start having a cross-platform approach in mind and develop an architecture that eases the task, as Dropbox did some time ago.
FB: Do you use mobile applications on a daily basis (be it on your smartphone or on your tablet)? Which ones?
FR: I’m a heavy iPhone user but I don’t use my iPad very much: mostly because my three-year son has kidnapped it and uses it mostly for playing children’s games available on Clan. The apps that I use more often are FB, Twitter (tweetbot), e-mail, LinkedIn, Evernote, Kindle, eBay, Skype, WhatsApp, HackerNode (an app feeding hacker news) and Trello. When travelling, I usually make a wide use of TripIt, FlightCardApp, Kayak and VLC. Kindle is the app that has surprised me the most, as I never thought that I would get used to read on my iPhone and currently it’s where I read the most.
FB: When it comes to training, where should someone who wants to learn about mobile app programming begin?
FR: I would go for easiness and profitability at the beginning − i.e. start with iOS to carry on later with Android. The crucial thing in both cases is to build up first a very solid knowledge base, especially in terms of knowing how to develop the best architecture for a given app. This is something that may result in time consuming situations leading to very poor results if not done correctly from the very start. Having a good knowledge base allows you to address the development of any app without fear.
FB: Having in mind the current economic climate and labour difficulties, do you think that a developer should know how to programme in different environments? Or is it best to specialise and get to be the top programmer in just one of them?
FR: It’s IMPERATIVE to know both: iOS and Android. And it’s not feasible to become a specialist in one of them. No company will hire “the best” programmer of a given platform if he knows absolutely nothing of the other ones.
To succeed nowadays as a mobile application developer one must have a good knowledge of iOS − which means knowing about Objective C − and also of Swift and Android (Java). It’s not as difficult as it may seem, since the concepts they handle are very similar. The nuisance of having to learn multiple languages is not as terrible, as they are quite similar and the syntax of all of them is based primarily on C.
I would also add that one must know a thing or two about Cloud Computing and MBaaS (Mobile Backend as a Service) such as Azure or Parse. By the way, the interfaces of these systems are generally very simple. And something that is often overlooked, despite its importance is C++: it’s a low-level layer that is often used to create code common to iOS and Android (by using ObjectiveC++ and NDK, respectively). We should not lose sight of it, as DropBox’s example reminds us. Of course, all this applies to professionals. If apps are just a hobby for you, using a cross-platform environment like Corona is more than enough.
FB: Regarding being an independent developer (be it a freelancer or an entrepreneur), what are the advantages and disadvantages of not being backed by a big company?
FR: It will depend on your goal. If you want to develop an app as a hobby, being a freelancer is the best option. However, I believe that building up a team is a must if you want to compete seriously on App Store. The app development market is extremely competitive and to be in the thick of things requires a lot of work besides writing code. It doesn’t matter how good your app is if it’s not beautiful. It doesn’t matter how beautiful your app is if nobody knows about it. And it doesn’t matter how many users your app has if you don’t have a good business model.
Design, marketing and monetisation will consume plenty of time, much more than the amount you’ll spend on programming. If what you like is programming, look out for co-workers who are as passionate about their tasks as you are about programming. For better or worse, the era of the “Lone Ranger” programmer has expired.