

Ask HN: Writing my first app - pbhjpbhj

I&#x27;ve got a killer idea (!) and want to write my first app. What&#x27;s the best way to do it. I&#x27;d like to optimise widest coverage for time spent initially.<p>Which platforms should I target. It&#x27;s to be a paid app for parents (though generally info about targeting demographics vs platforms appreciated) but I&#x27;d consider free as they&#x27;re are strong advertising opportunities. I&#x27;m assuming iOS is going to be best but I&#x27;d love to develop once and deploy to android as well if that&#x27;s even possible. Primarily I see it being used on phones.<p>Primarily my closest domain experience is in webdev (PHP, HTML, JS) though I&#x27;ve done a tiny bit of python, C++, SmallTalk, Fortran in the past.<p>I don&#x27;t have funds to purchase anything, I&#x27;m on Kubuntu but have Windows accessible.<p>Thanks for any info and advice.<p>[Sorry if this is a dupe of a dupe ... I did search but couldn&#x27;t find &quot;App Dev 101&quot; - this is probably the closest https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4731469 (the link should be http:&#x2F;&#x2F;www.codelearn.org&#x2F;rails-tutorials) but it has no info about implementation on a device, distribution, getting in to app-stores and such.]
======
tubbzor
I was actually just in a similar situation not long ago so I'll explain the
route I decided to go:

TL;DR : Cross-platform frameworks at this point in time (to me) are either 1.
Expensive, or 2. Unreliable in providing a native-feeling application. We
chose to develop a Client-Server Android app and add iOS when funds become
available.

I'm a college student and an opportunity came along from our vet program to
make a smartphone application, I jumped at it. They had no idea about
platforms but eventually wanted iOS/Android and possibly Windows. The only
computers I own run Xubuntu, Windows7, Ubuntu, and Fedora at school. So iOS
was obviously out of the picture at this point.

I originally researched along the lines of a cross-platform mobile framework.
After looking/asking around it seems these technologies really aren't there
yet, especially if you're looking at using any native functionality on the
device. I read lots of developer reviews and they were generally mixed in
terms of reliability and performance. Also, some are quite expensive; I recall
seeing a 1-year dev license for $1000 a year per developer. Possibly worth it
for a huge corporation, but just not for us at this stage in the game. It took
some convincing but I steered them away from this option.

I have experience in Android so we chose to develop a native stand-alone
Android prototype (they needed something simple to use to re-apply for their
grant next round/present to other investors), and plan on moving it to a
Client-Server architecture Android application and I'll either purchase a
cheap Mac Mini and learn obj-c or hire a iOS developer once we have allocated
more funding to hook it up on the same server as the Android application. This
way you can use the same server back-end logic for dispatching data and have
native GUI for each supported platform.

edit: grammar

------
oarmstrong
You won't be able to build and deploy iOS apps without running OS X - so
that's not an option from Linux/Windows unfortunately.

You can use something like Appcelerator Titanium[1] to use HTML/JS and build
native apps from that. So you will be able to use what you build to deploy to
iOS should you purchase a Mac in the future.

[1] [http://www.appcelerator.com/platform/titanium-
platform/](http://www.appcelerator.com/platform/titanium-platform/)

~~~
pbhjpbhj
Thanks for the tip.

Anyone here have personal experience of Titanium?

------
lechevalierd3on
You can make a full HTML5 App and later package it using PhoneGap.
[http://phonegap.com](http://phonegap.com)

I wish we could have a node-webkit for iOS... damn you big brother Apple!

~~~
pbhjpbhj
Funnily enough I just came across this -
[http://mixedcase.nl/articles/2010/04/21/getting-started-
ipho...](http://mixedcase.nl/articles/2010/04/21/getting-started-iphone-app-
development/) \- which mentions both PhoneGap and Titanium. That dev went for
native and I'm inclined to think that is best ... but then does that mean
completely restarting to port to android or is there a better way?

------
6thSigma
I've researched this a lot and I have found that the cross platform options
are just not there yet. Non-native apps feel weird to users and are almost
always hated.

I'd start with native Android.

------
sharemywin
Xamarin is also a possiblity for people with more of a .net background.
Although before you take the time to build an MVP. I would build a website to
collect emails for beta users so you have an initial set of users to program
for. If you can't get an initial set people to sign up for a free beta then
why waste your time on the great idea. Especially since you have the web
background. and expect only about 1 out of 10 to actually download the the
thing from yuor list, if your lucky.

------
lorenzopicoli
If it's a killer idea and can be monetize why don't you consider invest on it?
You can't create iOS apps without a Mac. You can try to do a hackintosh but
its a pain if you don't de right hardware.

Another option is to create using HTML 5 but its no the same as a native app.

~~~
pbhjpbhj
I'd invest on it if I had money to invest. Perhaps I can get hold of an old
Mac, what's the oldest vintage that would work well enough?

~~~
ja27
Older Macs won't support the latest OSX and XCode.

I'd look at MacinCloud or something similar if you have good bandwidth. $50 /
month for 24x7 online access to a Mac isn't bad at all and they have pay-as-
you-go for about $1/hour. I haven't tried them, but I think I've even seen
people claiming to do iOS development there using an iPad (+keyboard) as their
physical interface. You can get a few friends with iDevices to join Testflight
for free physical testing.

[http://www.macincloud.com/pricing/](http://www.macincloud.com/pricing/)
[http://XCodeClub.com](http://XCodeClub.com)
[http://virtualmacosx.com/](http://virtualmacosx.com/)

~~~
rayj
You can run OS X vm in vmware player. If you have a decent desktop box it can
be quite usable. This probably violates apple's TOS, but whatever.

~~~
lorenzopicoli
I had the chance to do this 1 year ago and it's usable (not as good as a real
computer) but I think it would be a pain (not worth) to develop an app in a
Virtual Machine

