9 ms·
It's Insanely Hard to Make a Kick-Ass iPhone App
- sumukh1 15y ago"It's insanely hard to make a kick ass _____" One of the reasons mobile design is so hard is because you have to use 100% of the screen. Not only do you need to make it look good, but you also need to squeeze the resources of the phone. You have to worry about battery life, network usage, and storage space. It's a challenge, but it makes the end result a lot better. The same rules really should apply to development on any platforms. Keep it light, simple, and focus on one thing.
- masonhensley 15y ago>>"because you have to use 100% of the screen" I think the that kind of restrain on the user would make work on native mobile development side easier. All you would have to deal with is 2x views (portrait & landscape) vs all the possible combinations of web screen sizes.
- sumukh1 15y ago>> 2x views Yeah, your right. Even if you consider Android, it becomes just a bit more complicated. Your point is very true for development (It's what I love about iOS) but for design it's a challenge. It really makes you focus on the one thing. Take gmail for example. On the web, I can do 20 different things, but in iOS the choices are limited to 3-4. It's really hard to make things simple, so where you make the compromises is the challenge.
- masonhensley 15y agoI was trying to make the comparison to iOS (theoretically iphone/itouch) vs web. Whether you focus on a single native mobile environment or multiple, I kinda think the scales at least from the UX design perspective if not also the development side.
- AznHisoka 15y agoThere's no worthwhile "Dip" when it comes to making an iPhone app since it's become commoditized, and crowded. There's a lot of effort, luck, sweat, etc, don't get me wrong, but the cost/benefit ratio just sucks. You're better off putting that sweat to creating an enterprise app for Fortune 500 clients, or creating the next big social network. Also, remember.. there's a lot of commotion over mobile, but in terms of monetization, it still lags behind web display, and search ads.. it's not even close.
- quesera 15y agoI disagree with two of your three points: (paraphrasing, fairly I hope) > Objective-C is too much work/too low-level for your app/required because the hardware is limited. Disagree. I wouldn't be disappointed to see solid Cocoa bindings in another approved language, but any programmer can learn C, and should. ObjC is a superset of C, and Cocoa is a beautifully consistent framework. The brackets might take a day or two to get used to, but they pretty much disappear after that. The much talked-about memory management model is not nearly as daunting as bloggers make it sound. > Designing hugely complex monolithic apps is difficult on the iPhone. Well, OK. I don't disagree with that entirely. But design is always serious work, information architecture is an art and science, especially for highly complex applications. That said, your app is not Photoshop and a good designer can solve your problems. Photoshop on an iPhone would be Difficult. So would XCode. > App store discoverability is poor, marketing around launches is unpredictable, betas and limited releases are complicated or unworkable, audience feedback is a big problem. Agreed 100%...! :) Good luck with your dev!
- glimcat 15y agoPhotoshop is modular, not monolithic. Designing a large monolithic anything is insanely hard. It's often best to design around it.
- ryanwaggoner 15y agoAre there many examples of iPhone apps that are simultaneously (and somewhat objectively): (1) beautiful, (2) easy to use, and (3) useful, that still don't go anywhere? I've been trolling around the app store for awhile trying to understand the market and what I see are tons of novelty apps, fugly apps (by anyone's standards), buggy apps, and apps that break usability in all kinds of ways. And judging by the lack of any reviews for these apps, it's hard to imagine they spent much time on marketing, even just sending some free copies to bloggers to get their feedback and see if they might review it. I'm not saying it's easy to hit points 1-3 above; it's not. But I wonder if a lot of indie app developers threw together something crappy in a few weekends of work because of all the stories out there about the big money being made, and then when it failed to materialize for them, they just gave up. The App Store has gotten millions of people to collectively pay billions for software made by indie developers, which is amazing. But it's still a marketplace and the normal rules of any marketplace apply. I would love for an experienced iOS developer making money to tell me if I'm wrong, and why.
- unoti 15y agoI'm an indie developer on Android, just starting to make an iOS version of my first app. My app is very well polished (look here http://www.pillowfightgames.com/jargoneer/ http://www.pillowfightgames.com/jargoneer/) but it's still insanely hard to do marketing-- probably because I have no idea what I'm doing yet. Although the overall quality level of many apps isn't very good, good quality is still not enough to ensure good sales. Marketing is key, I think. I hope.
- davezatch 15y agoAh, just searched the iOS store for Jargoneer after watching the video. Is there a mailing list or any way to find out when it's released? Looks awesome.
- mkilling 15y agoHey, judging by the video I don't agree that your app is 'very well polished'. Check out Cut the Rope, that's the kind of polish that is expected from an App Store game. Suggestions: - Add a tweening for picking up and dropping letters - centering of the board should happen automatically - put the restart button somewhere else. It looks weird when you drop a letter on top of it and it appears behind it (e.g. the 'm' in 'seem') - can't really tell from the video whether you already did this, but implement iPhone-like scrolling w/ momentum and bouncy behavior
- rdouble 15y agoI've found it far less insanely hard than what you need to know to make a kick ass web app.
- mhansen 15y agoPhotoshop’s submenus, window management, and setting screens afford that software package a level of feature depth I don’t believe can be achieved in a mobile environment no matter how sophisticated and intuitive UI conventions become. I wonder if the author is aware of Photoshop for Android tablets - https://market.android.com/details?id=air.com.adobe.pstouch https://market.android.com/details?id=air.com.adobe.pstouch Granted, it doesn't have all the features of desktop Photoshop, but it looks like it has a lot of the features, and it has great ratings.
- Tossrock 15y agoA tablet only app isn't the same beast as a smartphone app. You can throw a large number of menus onto a 10 inch tablet and gain functionality rather than lose it; try the same thing on a 3.whatever iPhone and you'd have an extremely cluttered, useless app.
- nevster 15y agoThere's also Photoshop Express for the iPhone. It's worth looking at to see what kind of design decisions they've made. http://itunes.apple.com/us/app/adobe-photoshop-express/id331975235?mt=8 http://itunes.apple.com/us/app/adobe-photoshop-express/id331...
- rudiger 15y agoThe fart app guy (his app was the #2 fart app in the app store) is retired with a $4-7 million bank account.
- Macsenour 15y agoDiscovery is not the issue. The issue is keeping the app on the device. With so MANY apps new every day, the average person loses track of the new apps they downloaded, and they stop using the older ones unless they really are kick ass. Spend less on marketing, more in making your app indispensable.
- brianobush 15y agodo android developers have many of the same issues?
- wallflower 15y agoThe quality bar is lower and the customers are miserly and fickle. For lack of a better term, iOS customers are snobs and Android customers are middle class.
- jgw 15y agoWhat I've found difficult to navigate is that while it feels a little like the joy of programming your old C64 (or in my case, Osborne 1), the truth is you're putting your work out there and it suddenly becomes open to both harsh criticism and support expectations - even if you're giving it away for free, without advertising. My app is for film-makers, and it's called Acacia (https://market.android.com/details?id=com.ephemerald.cameraassistant https://market.android.com/details?id=com.ephemerald.cameraa...), and I'll fix the bugs when I have time :)
- buff-a 15y agoBut the reason why developers are shackled to Objective C is to make sure processes finish in human time, and this is fundamentally a performance bottleneck in mobile hardware. I use monotouch. Compiles to ARM assembly. Not seeing any problems. For a generation of coders accustomed to limitless managed memory, high-level programming abstractions, and thousands of deeply functional opensource libraries, mobile is a step back to the Byzantine world of Commodore 64s. Really? An 8bit 1Mhz processor with 64Kb? Or is it a 600Mhz 32bit processor with 262,144kb. Sure it doesn't match up to my i7, but when java first came out we had Pentium 90s. The lack of ObjC library support is changing as more developers pile on, and if you go with C# then that's pretty much solved. (As a kid in the UK, you had a ZX Spectrum, a C64 or a BBC Micro. The next gen Commodore was the Amiga. The next gen BBC was the Archimedes. The Archimedes had the ARM2. Same instruction set as an iPhone... in 1988. I shipped a game on it. 100% Assembly. Much prefer C# to hand-rolled assembly, so its not just the new kids.)
- bad_user 15y agoYes but Moore's law is applied to phones differently, because battery life is as important as processing power, or even more so. This is the reason the 600Mhz processor in your phone will have worse performance than a normal 600Mhz processor. Mhz is useless as a measure for performance and it became popular only because of marketing campaigns by Intel, when they had an edge in the Mhz race. A more useful measure (other than running unbiased benchmarks) would be MIPS (millions of instructions per second) and MFLOPS (millions of floating-point instructions per second). For example an ARM11 from 2002 at 412 MHz was able of 515 MIPS (millions instructions per second), while a Pentium Pro from 1996 was capable of 541 MIPS at 200 MHz. Also an Intel Core i7 EE is capable of 177,730 MIPS at 3.33 GHz, while an AMD Phenom 2 X6 from 2010 is capable of 78,440 MIPS at 3.3 GHz. Basically your 600Mhz mobile processor is not the same processor you had when playing Counter-Strike a couple of years ago. That's because it is optimized for consumption rather than performance.
- caw 15y agoWhile I agree with you that the instructions matter, are your numbers x86 (or arm) instructions, or are they micro-instructions that your high level instruction set is translated in to? If so, the other factor is how many micro-instructions your instruction is broken down in to.
- TechNewb 15y agoI think one if the most beautifully designed app loaded with desktop level functionality, yet optimized for mobile, is Intua's Beatmaker II. Amazing. One of the best apps.
- alapshah 15y agoThe only major problem I see here is the app store itself. Discoverability is a huge problem... It is the one that I am most shocked that Apple has done nothing about. I routinely have trouble finding apps that have been released, and it is easy to get lost in the crowd. My company has released a few apps (we contract for other guys) and it is almost pure luck which ones end up picking up steam (certainly not our best work). I don't know the android market well... it seems to be better, but only on the margins. I am surprised that noone has come up with a better way.
- tel 15y agoIs it just me or does anyone who seriously thinks any app that resembles "photoshop, but on your phone" is going to be successful really have a strange perspective on what people use their phones for?
- xenophanes 15y ago> the reason why developers are shackled to Objective C is to make sure processes finish in human time, and this is fundamentally a performance bottleneck in mobile hardware. This is completely false. You can get good performance with high level languages like lisp. It doesn't have to look like C to be fast and to be possible to optimize it well. The whole "writing low level code is faster" mentality is WRONG for 99% of apps. The software game industry is wrong too. Abstraction is a good thing, not a bad thing. Abstraction helps us write better code, and can help improve performance. Abstraction is not something to sacrifice for performance; in general sacrificing abstraction hurts performance because the bottlenecks are things like humans understanding what's going on, being able to write good algorithms which is harder with lower level code, and how long it takes them (so how much time is left over to analyze and fix code bottlenecks). Low level languages waste time while making things harder on programmers. And they do this to no particular benefit. None of this is to say that Objective C is terrible. It's certainly a lot better than C or C++. It has some good abstraction capabilities. But there is absolutely no reason we couldn't use a higher level language on mobile devices and get better performance for less developer time. (The biggest real obstacles are things like the unpopularity of lisp -- it would, sadly and irrationally, mean less iOS devs and hurt Apple -- and the lack of high quality programmers who understand these things available to hire to make it.)
- davedx 15y agoHow is Objective-C a lot better than C++? What do you mean by "the software game industry is wrong too"?
- zoul 15y agoObjective-C has a very sweet expressivity/complexity ratio.
- dextorious 15y ago1) Objective-C is a very dynamic (think Smalltalk), less cluttered and more nicely designed language than C++, that can just as easy fall back to plain fast C. 2) For writing applications, desktop or mobile, nothing in the C++ libs ecosystem comes close to Cocoa/Touch. 3) For the task under discussion (iOS apps), it's the standard that get's 100% of official support from Apple, C++ is not.
- deleted 15y ago[deleted]
- alexbell 15y ago> But it won’t run on anything less than an iPhone 3GS. This is a general problem with mobile given how fast the hardware is moving along. And given that the 3GS is what, ~2.5 year old hardware? I don't think that it's crazy that an app won't run on anything less (I do think it's crazy that Apple still sells the 3GS). And I think consumers also kind of expect that if they do have older (pre 3GS) hardware, things are going to be slow. Also, despite the overall evilness of American cell carriers, it is kind of helpful to us mobile developers that they do their best to enforce a 2 year upgrade cycle with hardware.
- davedx 15y ago"For a generation of coders accustomed to limitless managed memory, high-level programming abstractions, and thousands of deeply functional opensource libraries, mobile is a step back to the Byzantine world of Commodore 64s." This made me chuckle. Maybe if you define "generation" as "this year's college output" then you might be right, but if we're talking "generation" as in the past lifetime of software development then it's nowhere close. Only in the last 5-10 years have we seen the rise of the well put together framework. Also, I have no experience with iOS, but the Android framework is pretty damn nice from the perspective of somebody who actually lived through the C64 days!
- potatolicious 15y agoI don't think it's a lamentation over framework per se, but rather a step back from the web-hysteria of a few years ago, where you can pretty much, with a lot of elbow grease (aka Perl) tie together component A with component B and feed it into component C to do something cool/wicked/useful, where they're all giant open source projects. Think of all the crazy things we did pluggin ImageMagick into PHP backed by giant MySQL instances. This is no longer really possible with mobile. I recently pulled in some image recognition libs to my app, and it's an extreme struggle keeping a large, legacy, C++ lib from exploding all over a mobile device. We really are stepping far, far, back from the previous trend of writing code as if the metal they run on is but a detail.
- dextorious 15y ago"""Think of all the crazy things we did pluggin ImageMagick into PHP backed by giant MySQL instances.""" While I agree those were easy to use, I can't think of any crazy/cool things from that era websites. Most of the cool/useful/nice web stuff is from the Ajax/fast JS/jQuery etc era of late. """I recently pulled in some image recognition libs to my app, and it's an extreme struggle keeping a large, legacy, C++ lib from exploding all over a mobile device. We really are stepping far, far, back from the previous trend of writing code as if the metal they run on is but a detail.""" It was never "but a detail", it was just that web development is seldom CPU/Memory-bound. Mobile development in the main is. Also, if you were trying to do a competent 3D game engine, back in the same era you did PHP/MySQL stuff, you'd see that the PC metal was not "but a detail" at all. It's also a little contradictory to lament about how easy it was to "plug ImageMagick into PHP backed by giant MySQL instances" and then compare it to the difficulty of not only programming for a mobile device, but also "pulling in some image recognition libs to my app". Not only you're attempting something much more cpu intensive and difficult than using ImageMagick/PHP for web development, something that could have been just as difficult if not more so back in your web days, but you also try it in a device with less memory/cpu. Something's gotta give, right? That said, nothing stops you writing plain apps for mobile that just do the same stuff you did on the web. There are plenty of frameworks that basically provide you with a browser view and let you do stuff (Platinum, etc).
- pankajdoharey 15y agoIf your product is that good , Apple does your free promotion on its sites,partners sites and Apple ad network sites for free, App store is just as beneficial to small players as large. You just have to create something remarkable and worthwhile to catch there attention.
- instakill 15y agoI.T.O monetization, you can also take the route of not developing iOS apps for yourself and trying to sell them for $0.99. You can instead offer your services to mid-sized companies' marketing departments and build iOS apps for them. You won't make millions if it explodes in popularity, but what are the chances of that anyway?
- mgrouchy 15y agoI think making anything "kick ass" is insanely hard. The depth of knowledge/creativity/intuition/etc. required to make incredible products in general is certainly non-trivial.
- wallflower 15y agoFor some excellent examples of apps in the vaunted league that he mentions, check out Beautiful Pixels. http://beautifulpixels.com http://beautifulpixels.com The user interface is everything if you want to compete in the major leagues (e.g. top 100).
- ANH 15y agoMay get downvoted for pedantry, but the spelling error in the first paragraph on that page drives home the OP's point. There are so many ways to undermine yourself as an indie dev.
- dasil003 15y agoMaking an iPhone app is relatively easy compared to most app development for the history of computing. Doing it well is significantly harder, but then again so is any craft. I dare say it's quite a bit easier than writing your program on a stack of punch cards and waiting 24 hours for the output. Or for that matter, making a chair that will last 100 years.
- namsral 15y agoMarketing is even harder! Although not an iPhone app, we've spent a lot of time in both developing and marketing our iPad game. But the revenue doesn't justify building another game which we would've loved to do. Developing an app is only half the battle, the other half is marketing it and as developers we are very bad at marketing. Our criteria for a success was: Polished Graphics, Engaging Gameplay, Sense of Humor and a Cool Trailer. Paddle Battle for iPad: http://paddle-battle.com/ http://paddle-battle.com/ http://www.youtube.com/watch?v=xP2gnq6z3Fc http://www.youtube.com/watch?v=xP2gnq6z3Fc http://itunes.apple.com/us/app/paddle-battle/id415463249?mt=8 http://itunes.apple.com/us/app/paddle-battle/id415463249?mt=...
- persona 15y agoAs he talks about the marketing problem for small players, I've just posted an Ask HN survey for Mobile Game Developers to get some feedback on something I've been working on to help small players. http://news.ycombinator.com/item?id=3334832 http://news.ycombinator.com/item?id=3334832
- Florin_Andrei 15y agoWell, the number one reason why my iPhone is a much less useful device than it could be is that many apps are insanely slow to launch. Dictionary.com - what do I use it for? As a non-native English speaker, sometimes I do a quick check on a word I'm not sure of. But the app takes so long to launch. It activates GPS, it connects via the Internet to download some obscure data that I don't care about, it does so many things that leave me completely indifferent... and it fails to do the one most important thing that I DO care about: find out the meaning of a word really quick. Like, right now, please. Sure you can turn off some of the extra features (but not all), sure you can reboot iOS to make it a bit more snappy, but the app still feels sluggish. And this is on an iPhone 4. Folks, sometimes an app is just an app. All those features that you think make the app more appealing to the customers - are just dead weight that pull it down. Please, keep the apps lean and quick.