{
  "$type": "site.standard.document",
  "path": "/mobile-app-development/",
  "publishedAt": "2016-09-08T18:14:00.000Z",
  "site": "at://did:plc:bryys25pc2fnagnyxqgsglhd/site.standard.publication/3mn26bjkkmh23",
  "tags": [],
  "textContent": "I gave a talk a few months ago to an audience comprising of mostly business people about mobile app development. Slides are here. Here's a summary.\n\nAPP DEVELOPMENT\n\nWhile mobile app development has many similarities with building other software products like web applications and websites, there are also notable differences.\n\nYou are usually working with a smaller screen. Usually a phone, but sometimes an even smaller watch screen, or a bigger tablet format.\n\nAPP STORE\n\nThere is a gate keeper. It is most useful to think of app stores as a brick and mortar retail store. Limited shelf space owned by someone who has power over you.\n\nThere are top selling charts. Be on those charts and you gain visibility. It's a chicken and egg situation.\n\nIf you app is featured, you gain more exposure. While a good quality app has a higher chance of being featured, it's still down to a bit of luck.\n\nYou have to play by the app store's rules. Certain apps aren't allowed and even when your app seem to fit within the rules, it is up to the reviewer's interpretation.\n\nSLOW DEPLOYMENT CYCLES\n\n * Web — Instant\n * Android — hours\n * iOS - days/weeks\n\nYou will also have to handle users running multiple versions of your app.\n\nAPP STORE PROMOTIONS\n\nSpecifically for Apple, if your app is to be featured, you need to provide ample time for submission and approval of assets (banners). At least provide weeks of buffer.\n\nEXPENSIVE\n\n> 60 days to do the development ... total development cost of $200,000 -- Craig Hockenberry of IconFactory, Twitterrific\n\nThis was a quote in 2010.\n\n * They raced to finish in 60 days due to release of iPad\n * Tools have improved, but customers' expectation are also higher now\n\nTHE APP\n\nWe often talk about building the app. But there's a few components to it. They all cost money and take time, and can introduce complexity.\n\n * Front end (the \"app\")\n * Backend\n * Dashboards\n * Web site/app\n * Internal tools\n\nOBJ-C OR SWIFT?\n\nFor Apple, Swift is definitely the way to go in the future. Unless your developer is extremely fluent with Obj-C, go with Swift.\n\nBut wait, there's other choices, including:\n\n * RubyMotion\n * React Native\n\nThese are both cross platform, but tools that build native apps. The former uses Ruby, the latter Javascript. Naturally, they are not officially supported by Apple and are incomplete and immature in different ways. But they both offer some significant benefits over Apple's official toolchain.\n\nIOS OR ANDROID?\n\nRather than rushing to build both, pick one. Figure out your feature set, marketing correctly and arrive at product/market fit. Then reach out to the other platform.\n\nITERATIVE DEVELOPMENT, NOT WATERFALL\n\nSoftware development using the waterfall process is still surprisingly common. Resist. Work with someone that can build your app iteratively. Waterfall might be fine if you know upfront exactly what you want. Chances are you don't.\n\nFINDING A GOOD DEVELOPER\n\nThe million dollar question. How do you find a good developer? I also wrote about becoming a better software developer.\n\nHere's a few things to look out for:\n\n * Communication\n * Get things done\n * Always learning\n * Waterfall or iterative?\n * Automated testing\n * Code review\n * Regular builds/code drops\n\nDEV SHOPS VS INDIVIDUALS\n\nIndividuals (freelancers/consultants) have a few limitations:\n\n * Limited manpower\n * Bus factor = 1\n * May need to assemble your own team\n\nBut you have the potential to convert them to full-time staff\n\nLOW COMMUNICATION OVERHEAD\n\nCommunication is essential to software development. Of course with a dev house, you'll work with a project manager who will/should handle that for you. But working with an individual means both you and them will need to spend less time communicating, or messing up communication.\n\nAREAS OF INVOLVEMENT\n\nWhile looking for a developer, it's also important to look at other areas which they can help out with. Depending on experience and skill set:\n\n * Strategy\n * Product management\n * Marketing\n * Feature planning\n * Design system/visual\n * Coding\n * Testing\n\nSPECIALISTS VS. GENERALISTS\n\nDifferent developers have different skill set. Generally specialization is more useful at a later stage. You want to start with a generalist because there are several things you need to build (including the backend) and as mentioned previously, fewer people means less communication overhead.\n\n10X DEVELOPER\n\nThis isn't a myth. Great developers write less code and fewer bug. Productivity between developers can vary a lot. There are many factors. This is important to keep in mind because this means that estimates from different developers can be very different.\n\nDEV SHOPS\n\nYou get a package deal. One number to dial, one neck to choke. I am generalizing here, but for a certain type of dev shop, you get:\n\n * Local sales & project managers\n * Offshore developers\n * Designers\n * QA team\n * More established/rigid process\n * Can't talk to developers\n\nPORTFOLIO\n\nSince you can't directly access a dev shop's developer capability, a good way is too look at portfolio. What they have done, how well those apps are rated.\n\nImportant to realize that in the sales process, you would likely be talking to the sales and presales person. These are not the people who will be working on your app. You need to try to talk to the project manager and developers.\n\nWHERE\n\nSo where do you find them? Go to a meet up. For e.g. in Singapore, there is iOS Dev Scout, a monthly meet up.\n\nIf you find an app that you like, try contacting the developer.\n\nHOW TO ACCESS THEM\n\nThis is harder than it may look. So you really want to find someone who you trust and who is technical. Let them interview the developer.",
  "title": "Mobile App Development"
}