Mobile Device Application Programming: Two Venues of Thought

Should I program for Android or iOS?

Each programmer when they begin their career as a coder remembers the original platform they started with.

For me it was an Atari 400 with the membrane keyboard. I had no storage device and I used Atari BASIC as my first language. I used to type in example programs from the Atari magazines and run their little games that used player missile graphics. Programming was a lot of fun back then and I will always remember it fondly.

Years later I am no longer using the Atari, mores the pity, but a production programmer in Windows using â??Câ?? and Visual Studio. I like the new mobile device programming platforms and all of the documentation that goes with it. The following is a brief explanation of both platforms and some of their attributes.

This will help you decide on whether to start developing for iOS or Android.

For the Apple mobile device programmer the choice is clear. You must program on an Apple platform and use their toolset to create applications. There is no open anything and Apple controls the path you take. From the use of Objective-C as a language, to the iOS SDK and the XCode Integrated Development Environment (IDE), and finally submitting your application the App Store Apple has complete control. There are some porting technologies that allow a programmer to develop on a PC and then submit their pseudo code to them for recompiling on their Apple machines but the pricing can get out of line if you submit multiple compile jobs. In addition it is almost impossible to debug the code. If you are going to code for the Apple mobile suite of devices remain native.
Now, is this type of control bad? I donâ??t think so. Objective â??Câ?? is an excellent language and fits in well with the SDK. The XCode IDE is designed specifically of building apps and the emulation path is second to none. The app Store has controls in place to make sure that your app is clean and well written and offers the user a safe environment to purchase the app. All in all Apple, like everything, dots every â??Iâ?? and crosses every â??Tâ?? to ensure that from programmer to user their framework is implemented.

On the other hand the Android platform offers a myriad of choices for the fledgling app programmer. The path I chose was to use the Eclipse IDE for Java development which is the language used to program an Android mobile device. The website for setting up your programming environment gives detailed instructions in how to set up the Eclipse IDE. You need the Android software Development Kit, which comes with the emulator for testing your software.
Android is open source which brings with it the good and the bad. There are many tools, and a broad spectrum of documentation. Some of it is useful, some of it is bogus. To avoid any confusion always use the android developerâ??s website as ground zero.

I have been asked which platform is better for building apps and my answer is always the same. If you are trying to make a living writing mobile apps then go with Android. They have a much larger user base and are growing much faster than Apple. You can build a simple app and make good money with it. If you want to write beautiful apps in a wonderful work environment but make less money then go with Apple. The iOS programming environment is made with the coder in mind and offers a wonderful programming experience.

Guest Post

Image courtesy of FreeDigitalPhotos.net

 Video on developing apps for Android and iOS

[shareaholic app="share_buttons" id="4703992"][shareaholic app="recommendations" id="4704000"]

7 COMMENTS

  1. My first attempts at programming were done on a ZX Spectrum. Great memories. I made a fishing game up where you caught random fish after sitting in front of the screen for hours lol

    I was only young and produced graphics that were way more detailed than the Spectrum could handle, so the immensely large fish moved sluggishly and slowly across the screen at a painful speed, but it was fun to make.

    That was back in the days when programmers were programmers and not called ‘developers’ or ‘software engineers’. Really, it’s so obvious that engineering is so completely different to coding, and developing just sounds so open-ended and weak. To me I will always think of programmers as programmers. Full stop.

    I bet it was some management team somewhere with one of those hackneyed PowerPoint presentations/slideshows with coffee and biscuits and false interest/smiles pasted on to climb the corporate ladder that wanted to place programmers into a general category that caused this fuzzy job title to stick. It’s like calling scientists ‘Reality Developers’ because they increase our understanding of fact and proof based observations.
    Developing an app involves many more processes than just programming, such as artwork, design and music within the app. Yeah, I actually resent this wishy-washy term.

    Musicians develop music, so should they be called ‘Audio Developers’ – no, it’s condescending and it reeks of management batch grouping of real skills into units that serve them to knock out what they just see as a marketable product. Don’t fall for it. We are programmers, experienced or at a novice level alike.

    Hey, here’s an idea . . . let’s call all managers ‘Profit Developers’ – let’s see how they embrace that condescending wishy-washy title 😉

    • Yeah I have to agree with you on this one. Should just be called programmers. On the other hand, there are people out there dumb enough to argue against calling yourself a programmer. http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/

      Lol. “Engineers are hired to create business value, not to program things: ”

      “Donâ??t call yourself a programmer: â??Programmerâ? sounds like â??anomalously high-cost peon who types some mumbo-jumbo into some other mumbo-jumbo.â? If you call yourself a programmer, someone is already working on a way to get you fired. You know Salesforce, widely perceived among engineers to be a Software as a Services company? Their motto and sales point is â??No Softwareâ?, which conveys to their actual customers â??You know those programmers you have working on your internal systems? If you used Salesforce, you could fire half of them and pocket part of the difference in your bonus.â? (Thereâ??s nothing wrong with this, by the way. Youâ??re in the business of unemploying people. If you think that is unfair, go back to school and study something that doesnâ??t matter.)”

      To me this is all a bunch of mumbo-jumo BS. If you know the history of Facebook you know the first team was a team of beer drinking programmers (not engineers), if you know the history of Apple you know Wozniac was a programming enthusiast, and if you know the history of Microsoft you would know that Bill Gates sold QDOS as a mere improvement of CP/M to IBM. Surely he “engineered” jacksquat and merely programmed in improvements.

      The story about Bill Gates landing the job even cites the other people IBM talked to as programmers. http://www.businessweek.com/stories/2004-10-24/the-man-who-could-have-been-bill-gates “The legend goes like this: One fateful day in the summer of 1980, three buttoned-down IBMers called on a band of hippie programmers at Digital Research Inc. located in Pacific Grove, Calif. They hoped to discuss licensing DRI’s industry-leading operating system, CP/M. Instead, DRI founder Gary Kildall blew off IBM to gallivant around in his airplane, and the frustrated IBMers turned to Gates for their operating system.”

      So in my personal opinion the proper term should be programming. If you are using some sort of MVC design pattern, or are “engineering” NASA’s next satellite ROMS, you may call yourself an engineer. Until then programmers do exactly what the person above said in their article. “Type mumbo-jumbo into other mumbo-jumbo.” May sound like that to non-tech savvy customers, but for simplicity’s sake that’s what programmers do, and somehow they still bring forth amazing results 😀

      :Beer:

      • Also if you really do get to the engineering level it seems like most people can’t program anymore. http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

        So the difference is an engineer can lead giant projects that require advanced theoretical knowledge, while programmers are down to earth people who can solve simple problems in minutes.

        It’s the classical college vs. self education. Do you know more if you learn business in college, or if you started your own business and grew it? Theory vs. practice.

        • Good point. Many people who I know of who have started successful businesses left school to go straight into working for themselves and eventually building a business. I noticed that most of them had a family that were business owners, so I guess they learnt that mindset from the beginning. I suppose it all depends on what kind of service it is as well. If they left education early and started as a freelance architect for example, there could be some catastrophic accidents happening here and there lol

      • Yeah, I’m with you all the way on those points 🙂 I spent a year in mechanical engineering (before realising I wanted to do something more creative) and working on Jaguar seating jigs with overalls on operating a lathe was a whole different feel than sitting down with a coffee, creating a program and hitting the build key. I respect both types of career, but yes, they are as different as chalk and cheese.
        The term ‘programmer’ has a fun aspect to it too I think, such as a games player is called a ‘gamer’. If gamers were to be renamed ‘App Users’ it takes away the fun feeling. Not everyone will feel the same way I’m sure, but it just feels that way to me.
        You hit the nail on the head when pointing out that companies sometimes disguise programmers in their organisations with vague job titles to stop people head hunting them. As well as other employees with particular skills in different areas.

        • Putting together cars with a lathe? You ought to tell me about that 😀 I know what you mean about programming vs actually doing something (physical) LOL. They’re both hard work, but so different.

          I know you meant the mechanical engineering vs. putting the stuff together, which is the same as a software engineer vs actually programming. They’re just as different and rewarding in different ways.

          But as you said, once you start calling people things like “App Users” you just become a douchebag, and everyone else that is an “App User” feels uneasy.

          So hopefully it stays at engineer, or some other word, and it doesn’t get even more unpersonal/specific.

          • Yeah, I did a year’s apprenticeship after leaving school at Westinghouse engineering before going to an engineering company that made microlight parts and jigs for Jaguar car parts. I was promised this and that, but on talking to employees that had been there for years I realised that I’d been lied to. I decided to go back to further education and study graphic design as well as English. I had a run in with the owner who told me that I had taken ‘the wind out of his sails’ but later we made up and he wished me luck and admitted that when he was younger he had always wanted to be a chef and had always regretted not following up his dream.

            I did like the feel of making things on lathes and mills and also oxyacetylene welding however. I’d imagine that having your own garage and making a brand new motorbike design or a robot for ‘robot wars’ (English TV series where robots were pitted against each other) would be a lot more interesting than making a seating jig however.

            I dabbled around for fun at that time on a voluntary college evening course in blacksmithing which had such an amazing feel to it. Shaping heated metal by smashing it physically over an anvil was good for fitness and just felt like you’d put in a solid day’s work. Impossible to describe unless you’ve had a go, I’d recommend it, especially if you want to blow off some steam. This is a dying art, although there are some people who still do this. I’d imagine if you are in to sculpture then this would be a real consideration if you like full on physical work instead of prancing around in a painter’s gown reciting poetry to the trees.

            This is off subject, but whilst writing this reply I got to wondering what the most knackering physical action I’ve ever done in my life was . . . I’ve laboured at weekends on a building site to help finance education and have even done boxing and various martial arts and even nutty workout schedules. However, there is one activity that tops this . . . mechanical bull riding lol Yes, especially if the sides of the mechanical bull are shiny and slippery, you have to hold on so tightly with all of your might. I stayed on for 20 seconds and was out of breath as if I’d done an hour workout. It’s really harder than it looks, especially if you have a nutter at the controls who speeds it up with glee.

            How did I get from engineering to mechanical bull riding? Lord knows . . .

Leave a Reply to Octavian Ristea Cancel reply