What does it take to Develop Mobile Apps?

Certainly a large and abstract question, for an even bigger topic, but…

What does it take to develop a Mobile App?

What I am really getting at is not “Give me some code…” but rather I am wondering “Do I have the skills and ability to develop my own Mobile App that appears on something like the Apple Store?!”

Pardon me for saying this on my most favorite of websites, but anyone can build a web page and a website. (Although few can do it at the level that our beloved SitePoint Gurus can!)

Back to my original question…

It is my perception that to create a Mobile App that is worthy of the Apple Store, you might need a Ph.D. in Computer Science, 10+ years of professional experience coding in C, C++ and C#, and have built your own Java Compiler while still in high school?! :eek:

Realistically, how hard would it be for a mere mortal like me, to create a modest Mobile App that looks professional enough, and is secure enough that it could get placed on the Apple Store, and something the average person would feel confident enough in to want to install on their Smart Phone? :-/

Maybe a simple Mobile App like…

  • A Calculator
  • An App to Convert Measurements from U.S. to Metric
  • An App that sends RSS-like News-Feeds on a given topic (e.g. Breast Cancer News, Global Warming Articles, etc)
  • An Alarm Clock

Thanks to A LOT of help from people here at SitePoint, I feel like I have gotten pretty good with HTML, CSS, PHP and MySQL. And I think the website I have been working on looks awesome.

But do I have what it takes to “Go Mobile”?!

It sure seems like if I could take the “awesomeness” of my browser-based website, and convert some of it into a Mobile App that people could use on their Smart-Phone, that I could open up a whole new world of Visitors and Customers!! (BTW, I am not asking about making my website “mobile”, I am specifically asking about creating some modest Mobile APP.)

In closing, how hard is it to do what I am thinking about??

Is this something only people like Steve Jobs and Bills Gates were made for?

Or could a decent - but still green - web developer figure things out in a reasonable amount of time?

Thanks,

Debbie

im not really on that but this Article : Link can guide you to achieve this goal i hope!

Deadmix,

Very interesting article. Thank you!

Unfortunately - while useful in other ways - it doesn’t answer my OP.

What I am trying to get a handle on is how difficult it is from a technical standpoint to write a Mobile App.

Again, it isn’t rocket-science to build a modest website using PHP, MySQL, HTML, and CSS.

However, to write a true “application” (i.e. some .exe) is a whole other undertaking from the little I know.

And I would suspect that to write a Mobile App, you’d need to be pretty knowledeable with more advanced languages like C or C++, but that is the whole purpose for this thread…

I don’t know what is involved?! :-/

Follow me?

Thanks,

Debbie

hehehhehe ok now that i got you, the main question is not what language you gona use to build and develop a mobile APP but Which Language you will Feel Comfortable With… Like i said before im not on all that but what i read and hear about this kind of development is that they use C++ or Python… but what im sure about is that every mobile device have a supported language… like for example Android was programmed by JAVA even though C++ is supported now… on the other hand for example the the iPhone is programmed with Objective-C… but in fact i guess and you can correct me if im wrong… Most use a Web Development then Export it for the supported mobile device language…

So i think the best way is to try… why you don’t do a look to Google AppEngine they use java and python so you can get an idea to which one to start learning !?

Thanks for the reply.

Well, it is starting to sound like I might have a really large uphill battle… :frowning:

You see, I never learned OOP in college or as a Developer in my earlier years, and since I work as an Analyst now, and just program “recreationally”, I might be in for quite a task.

I guess I was starting to feel all “big and important” since I’m doing pretty well with PHP. But the reality is that being a seasoned Java or C++ or C# developer is in a whole other class - no pun intended - than doing kiddie PHP stuff - which is where I’m at.

Maybe there are some others out there with real world experience on this topic??

I have mixed feelings about all of this…

On one hand, having to learn OOP and true Application Development with a complex language like C, C++, Java or C# terrifies me!!! (Especially having to write code that interacts with an Operating System - which I get to avoid with PHP)

On the other hand, even if I would have to learn OOP and something like Java or C#, you wouldn’t think it would be overly hard to program a Calculator or do News Feeds. I mean, programatically, I could figure that out in PHP. It’s just that I wouldn’t know how to do it in an OOPish way in say, Java?!

Building a Mobile App isn’t my first priority in the business I am trying to start. But I confess, it would be so cool to say, “Oh, BTW, make you you check out my latest XYZ App on the Apple Store!!” :smiley:

Anyways, maybe some others out there can join in the conversation and try to help “enlighten” me?!

Thanks,

Debbie

I would generally argue thick client applications – including mobile – are easier to understand than most web apps. The fundamental difference is most apps are stateful and you end up spending lots of effort fighting the stateless. Furthermore you don’t actually have control of the client environment so you need to work with those exigencies.

Anyhow, if you’ve got a mac, there really isn’t anything but a 4 gig download between you and being able to write your own iOS apps for the simulator.

Yes, I am on a Mac.

So where would I begin - being on a Mac - and probably wanting to focus on writing for the Apple Store (i.e. Mobile App for iPhones, iPads, iWhatever)?

One thing I have liked about PHP, is that even though I have been away from programming for over a decade, the learning curve has been pretty easy.

I prefer spending my time writing the Business Logic versus struggling with all the annoying Technical Stuff.

Thanks,

Debbie

Technically, you need to install XCode from the app store and then make a new iOS project of an appropriate type. Objective C is a funny looking language but it is pretty sweet once you get your head around it. With current versions of iOS (5+) you get automatic reference counting so you don’t even need to deal with [retain] and [release] anymore.

Lots of educational resources out there about building iOS apps at this point. Personally, my favorite resource was the iTunes U Stanford iOS classes but YMMV.

hey debbie, what about this Link it’s about php and mobile application ! a full tutorial! as you said that you feel good with PHP !

So I would be stuck with using “Objective C”?

Does your response also imply that I would have to use OOP? (Which I know very little about.)

And if I installed XCode, and then apparently created a new “iOS Project”, are there any other tricky technical things required? (Many years ago when I was chatting with a desktop app developer, I remember him describing how complicated it was to have to use Libraries and Classes from Microsoft and Windows in the C++/Java app he was working on. For instance, unlike PHP which is standalone, you apparently had to know which MS Windows classes to use so yo could build your GUI, even if it was written in Java. So basically my understanding of all of this was you needed to be an expert in BOTH MS Windows Classes/Libraries AND Your Programming Language!! That is the kinda stuff that would break me if I ever decided to take up building my own Mobile App…)

Debbie

To build a real-world PHP application you’d typically need to leverage PHP as well as SQL, HTML and Javascript. Which is probably more involved than wrapping your head around Objective-C and CocoTouch.

And no, OOP is not horribly hard or scary though there are lots of PHP developers who make it out that way. In any case, Objective-C is a strict superset of C so you can write pure procedural code outside of the points where you need to touch the UI which is all wrapped up in CocoTouch. Even then you really just need to implement the right method, not get into crazy object oriented design.

Really??

And no, OOP is not horribly hard or scary though there are lots of PHP developers who make it out that way. In any case, Objective-C is a strict superset of C so you can write pure procedural code outside of the points where you need to touch the UI which is all wrapped up in CocoTouch. Even then you really just need to implement the right method, not get into crazy object oriented design.

Well, first, I hope to try and start learning proper OOP as soon as I get v2.0 up and online.

Secondly, if you had to take a broad guess, would it be possible to build a simple Mobile App (e.g. Receive Articles & Alerts on Topics You Subscribe To) for iPhone and iPads in maybe 4-6 months?

I haven’t done a formal count yet, since I still have a few weeks of code tweaking left, but I estimate my current website is around 15,000 lines of code…


BTW, have you ever built a Mobile App?

Sincerely,

Debbie

Something I just want to add to this topic. If you want to write an iOS for apple, you will need to buy a developers license. Which costs $99 per year. Without that, you cannot write and release any iOS apps.

That being said, Objective-C is arguably one of the ugliest syntax’s around, but once you understand it, it is not hard to write. Yes, and now with ARC, it is a lot easier when you do not have to worry about memory management to that level.

I came from a C# background of about 5 years XP. I decided to start learning with a book I bought as well as online. And I wrote and released my first app to the apple store in about 4 months. Was a basic app, but fun to do @ the same time. And to be honest, the book was not really much help to me. I found it easier to just do a simple hello world tutorial, so you learn how to get things up and running. Then after that, come up with a project and do it and research and learn each step of the way. IMO, that is the best way to learn something. To have a clear goal in mind and you work toward that goal. If you get stuck, post your problem here and we can try and give you advice.

When building mobile apps be it Android, iOS or windows, the biggest challenge is device support. You were talking about libraries, etc for windows. Well, something like that. Certain SDK items are only available from certain OS versions and up. So if you want to use a higher SDK, you will have to up the minimum level of OS version, which will reduce the target audience somewhat, depending on how new it is. Or you will have to use reflection to get around that. So that is just something to be aware of.

There are tools around like PhoneGap and Mono that allow you to write for multi-OS with one language. But IMO the experience is not as nice as doing it yourself.

So, good luck with endeavour to learn mobile app development. Yes, it is a challenge, but it is well worth it and pretty fun to do.

Hi DoubleDee,

i read your task and would estimate the project in 100 hours for iOS.

Not to be ignorant, but how in the name of H-E-double hockeysticks did you come up with that estimate? There’s no definitive app defined, nor requirements gathered.

experience…

Sorry - don’t buy that. To throw a random number of hours out there for a product which hasn’t been defined, with requirements that haven’t been set, and a developer having no experience developing in that platform?

Nope.

Our general rule for any project requiring an immediate estimate is “3 weeks”; it has been very successful. Yes, we have published a few mobile apps and we were doing mobile focused web apps since before it was sane. We also have built a number of connected windows apps which are more like mobile apps than web apps.

In any case, your list of requirements could be easily done, devil is usually in the details – like do you want to synch people’s accounts and how to handle offline reading.

David, so maybe I can give a better idea of what I might like to do?

First off, I read the link that DeadMix provided, and agree whole-heartedly with what it said, which was basically…

a.) Don’t just write a Mobile App to have one. Have a clear purpose
b.) Make sure your Mobile App provides something your Website can’t easy provide (i.e. value-added benefit)

Here are two rough Mobile App ideas that I have…

(Remember, I am in the “Exploratory Phase” right now, and the goal is not to properly scope out a Mobile App. The goal is to answer "Is it FEASABLE to try to learn to develop a Mobile App all by myself for iOS??)

App #1: Receive Alerts of Certain Topics
Via a simple UI, a person could receive alerts on Articles of interest. User could…

  • Browse Categories (e.g. Finance, Legal, Small-Business), and Subscribe to an entire Category.
  • Browse Popular Topics (e.g. Taxes, Incorporating, SEO, Building a Website), and subscribe to a specific Popular Topic.
  • Search by Keywords for Related Topics (e.g. Search for “S-Corp” yields “Incorporating”), and Subscribe to specific Topic.
  • Manage Subscriptions (i.e. Unsubscribe)

App #2: Checklist
Via a simple UI, a person could manage their life by using Checklists. User could…

  • Browse a Listing of Checklists (e.g. Items Needed for Taxes, Items Needed to Incorporate, etc.), and Subscribe
  • Use the Checklist
  • Manage Subscriptions (i.e. Unsubscribe)

Those, of course, are very high-level requirements, but they provide a rough idea of how I think a Mobile App(s) could help my future business.

Wanna take a swing at how long either of those two apps would take to build…

[INDENT]- For an Experienced Mobile App Developer?

  • For Me?
    [/INDENT]

Sincerely,

Debbie

So if I developed exclusively for iOS, would I be stuck with using Objective C, or could I write things in another more common - and possibly prettier language - like C# or Java?

(BTW, does writing an “iOS” Mobile App means that it would work on iPhones and iPads and maybe other Apple products?)

I found it easier to just do a simple hello world tutorial, so you learn how to get things up and running. Then after that, come up with a project and do it and research and learn each step of the way. IMO, that is the best way to learn something. To have a clear goal in mind and you work toward that goal. If you get stuck, post your problem here and we can try and give you advice.

Well, I do that for a living, so that part is easy!

When building mobile apps be it Android, iOS or windows, the biggest challenge is device support. You were talking about libraries, etc for windows. Well, something like that. Certain SDK items are only available from certain OS versions and up. So if you want to use a higher SDK, you will have to up the minimum level of OS version, which will reduce the target audience somewhat, depending on how new it is. Or you will have to use reflection to get around that. So that is just something to be aware of.

Based on the high-level descriptions I gave for two sample Mobile Apps above…

How hard would it be to write a professional-looking, yet simple Mobile App that scales well?

For instance, my current website uses HTML 4, with solid HTML/CSS standards, and no JavaScript, so it should work on nearly any browser. (“Less is more!!”)

If I was going to the trouble to write a Mobile App, I would hope to do it in a way that would work on nearly any Smart-Phone. Because what I do NOT want to become is a full-time Mobile App Development Shop!!! :eek:

Could I write it once and basically leave it short of security updates and updates that address major platform shifts in the industry?

Yes, it is a challenge, but it is well worth it and pretty fun to do.

Well, I am more interested in doing it for the “Fun Factor” versus a dying, unmet business need. (I think it would help me grow as a developer!)

Sincerely,

Debbie