Introduction to iPhone App Development - midVentures DESIGN+DEVELOP


Published on

Slides from KeyLimeTie CTO Chris Grove's Introduction to iPhone App Development presentation at midVentures DESIGN+DEVELOP workshop, January 20, 2011.

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • \n
  • Here in Chicago area, Downers Grove\nSpecialists in many technology fields, as well as graphic design, IA, digital strategy, and marketing\nWe create custom applications, and also provide all of the services around that effort to ensure business success\nWe want to be not just coders, but partners from beginning to end\nVery excited about the Chicago technology community - why we’re so happy to be able to talk to you here today\n
  • Programming a long time, lots of techs and industries, but focusing on mobile for a couple of years - the place to be\nSo you know where we’re coming from, a little bit about some iOS apps we’ve written\n
  • Every client has unique needs, so each app is unique - no one formula\nLava - moving old brand to new tech/make custom lava images, animate w/ music, share with friends\nParts Town - restaurant equipment supplier, allows field technicians to look up equipment manuals, dupes web but more convenient\nHallmark Channel - Every day is a holiday, read and share quips about the holidays, TV schedule, holidize photos\nSloan Valve - estimate water savings by using Sloan fixtures in new construction or remodels\nThe Secret - daily one-a-day-calendar style wisdom, direct revenue generator, #1 in lifestyles\n\nBefore we get started, Not a tutorial - help with the technical and non-technical aspects of a successful iOS project\nMore to it than just coding\n\n
  • Top - We like all platforms, but this is about iOS\nBrand awareness is great, lots of apps have that as a focus - but users want features\nMake an app if you can give the user something compelling\nNot enough that you want something out of the app - your users have to want something out of it\n
  • iOS - includes iPad, but extra work to make it optimized\nPhone/OS - one vendor vs. many, more coherent view, plus differences between units are minimized (Retina)\nSingle OS - 90% of users on iOS 4, more fragmented on Android (carrier lockdown)(into open myth)\nMature - older, based on OS/X and NEXTStep\nMarketplace - 1st/most successful app store, more than 1 Android (Amazon) w/ worse UX\nReview - often criticized, but no viruses\nFocus - hard to quantify, but iOS generally still considered the best UX of any mobile device\n
  • Most users care less about customization and more about being ease of use\n
  • \n
  • Look and feel - web can emulate, but poorly\nAvailable - HTML5 can work offline now, but new technology\nAny smartphone - hard to make it look good on all platforms though\nWe’ll mention cross-platform frameworks later\n
  • Been writing code for close to 30 years, this looks a lot like everything else\nNot rocket science, but not the best choice for a first programming project\n
  • Not disparaging freelancers (next slide)\n
  • Tradeoffs - you can delegate the authority, but not the responsibility\n
  • \n
  • First step - design the user experience\nit all begins and ends with the user, so spend some time here, iterate, consider edge cases\n
  • Hot areas of observed user behavior\nDesign for user behavior and desires instead of trying to create a new behavioral pattern.\n
  • Should be obvious to users what they can do and how they can do it\nBuild user stories, personas\n
  • May want to start your own library of useful pieces\n
  • Start with simple mock-ups - don’t get caught up in colors and fonts and exact pixel positions\nLets you try new ideas quickly\n
  • Keep - try to create functionality in a way the SDK “likes”\nEven - use the full SDLC and professional tools no matter what\ntemptation (esp. for enterprise devs) to treat mobile as small, throwaway code\nUse the samples from Apple\nRead the HIG\nRead the docs for any framework you’ll use\nApple way - esp. for 1st project, don’t fight Apple\n\n
  • More on what elements are standard and easily customizable later\n1st project, avoid the overly complex - so, what is complex?\nRule of thumb – if it looks like one of the Apple built-in apps, it’s probably easy\n                Caveat – with a few exceptions where they go behind the SDK (phone, SMS, calendar icon)\n                Talk about undocumented APIs, why not to use\nGeneral - allow complexity in the part of the app that distinguishes it, seek simplicity elsewhere\n (if the key to your app is using the camera, focus on that, don’t do custom UI gestures too)\n\n
  • n possibilities with one feature set, n with another - now n-squared things to deal with\nNot about possibility but difficulty (device is very capable) - scale the technology to fit the budget and schedule\nNot saying don’t do it - some of the most compelling apps are about convergence - but be aware\n
  • IDE – Xcode, not too different from other IDEs\nBe familiar with OS/X\nDon’t need to be an OS/X programmer, but if you are it’s a big bonus\nObjective-C - superset of C, easy to integrate C and C++ code and libraries\nOther tools - Interface Builder, iPhone Simulator\nMention VCS, issue tracking, etc.\n
  • We’ve released an app (PartsTown) for Android and iPhone using Appcelerator\nBest suited for projects where the UI can be identical on each platform\n(platform standards may argue for different UX - note Android hardware buttons)\n
  • Lots can be done with images, either alone or as elements in other controls (buttons)\nTables are the basis of many iOS apps, require some programming (not just IB)\nExamples to follow\n
  • Some UI elements are simple, others are compositions\nSophisticated features - for instance, grayed out placeholder text for text fields\n\n
  • Nav bar, toolbar, and tab bar - explain\nSidebar - difficulty with customizing tab bar\nWeb content view (also mention text areas and tables)\nPopover - iPad only\n\n
  • Any dynamic list of rectangular regions is a table view\nExtreme customization possible (at a cost)\nTake the time to really learn table views, it pays off\n\n
  • Become familiar with all of the things that are accessible through the iOS SDK\nCamera - includes overlay graphics\nMap based on Google maps\nNetworking - same as modern desktop OS, easy access to web content, web services\nMotion - shake, fist bump\nTelephony - launch calls/SMS/MMS, but can’t completely automate (locked down)\nMultitasking - new, limited, read the docs\nAnimation - view transitions based on transforms\nLots more - read the docs\n
  • Only two ways to get an app on a device - dev/ad hoc builds, app store\nThere are complexities in the build/package process, be prepared\nReview guidelines are (now) published\nDescription - look in store for examples\n
  • Myth - need to actively promote\nHave to overcome that noise - use many angles\nMake - hit the ground running when your app gets to the store\n\n
  • Stats change rapidly, keep looking\n
  • Three things everyone carries (phone, keys, wallet) may soon just be phone\nSometimes evolutionary enhancements seem like revolutions (broadband)\nBut - people buy phones for applications, not features; hopefully the next “killer feature” for the iPhone will be an app someone here today writes\n
  • \n
  • Introduction to iPhone App Development - midVentures DESIGN+DEVELOP

    1. 1. Introduction to iPhoneApp DevelopmentChris Grove, CTO
    2. 2. About KeyLimeTie• Full-service design, development & digital strategy agency• Specialize in web and mobile technologies• Content management, e-commerce, and custom applications• Social media strategy and reputation management
    3. 3. About Me• CTO and principal iOS developer• Leads mobile development team of iOS, Android and Windows Mobile developers• 15+ Year background in insurance, finance, publishing, energy, and construction industries
    4. 4. Apps We’ve Developed
    5. 5. Why an iPhone app? • Why a mobile app in the first place? • Can’t answer the above? You’re probably just chasing the iPhone fad • Opportunity to make something thats truly useful to your customer Provides utility Extends brand to regular with utility and customers entertainment
    6. 6. iPhone vs. Android Phone/OS as a Unit OS/Many Devices Single OS - Simpler OS Fragmentation More Mature Platform “Open” Myth (Carriers) More Mature Marketplace Fragmented Marketplace Review Process Open Marketplace Focus on Customer Focus on “Openness” Experience allows for Poor UX
    7. 7. Android FragmentationCompare these three Android OS homescreens: HTC Droid Incredible Samsung Nexus S Samsung Galaxy S Source:
    8. 8. iPhone vs. Android: Users Average 28 Apps Average 17 Apps Spends 7x More on Apps/ In-App Purchases Source:
    9. 9. App or Mobile Web? HTML Native look and feel Web look and feel All iOS features Subset of iOS features Always available May require network Only on iOS devices Any smartphone Objective-C HTML, CSS, JavaScript Easy to discover apps Harder to discover apps
    10. 10. Learn, Hire or Contract?• Are you a developer? iPhone development is within reach for you.• Are you a business person? Consider hiring... • A full-time developer • A development firm • A freelancer
    11. 11. Development Firm vs. Freelancers Development Firm Freelancers Typically Expensive Lower Rates Consistent Processes Less Quality Control Team of Experts Solo Practitioners Typically Offers Warranty Fewer Guarantees All clients pay standard Potentially distracted by rates. new/higher paying clients.
    12. 12. Development Firm vs. Freelancers • Freelancers offer a huge advantage over development firms: low cost. • Tradeoffs must be accounted for. Manage freelancers closely, aggressively check references and enforce delivery dates. • If well managed, freelancers can provide an excellent product. • Iterate - the only measurement of what is “done” is working code.
    13. 13. Development Firms• Higher cost gives you access to specialists for all needed disciplines including strategy, user experience (UX), design, information architecture, development, and analytics.• Ensure you properly define scope up front and get the work agreed to in writing. Changes are costlier with a development firm.• Keep the conversation focused on achieving your business goals and talking about your customer’s expectations.
    14. 14. Designing Your App
    15. 15. Design for User Behavior• Mobile Commerce• Social Networking (25% of Americans use Facebook in the bathroom)• Game Platform (iOS Social games have a larger audience than Prime Time TV)• Location Based Apps iHandstick (Foursquare from 100m check-ins to 200m in 2.5 mos)Sources:
    16. 16. Thinking in Screen Flows• When designing your app, walk your users through common tasks. • First Use (tutorial, connect, setup) • Task #1 • Task #2
    17. 17. iPhone UI ElementsDownload UI Elements Here:
    18. 18. Mocking Up Your App• Use wireframes to capture the essential functionality of your app. • Balsamiq • Mockingbird • MockApp for PowerPoint
    19. 19. Developing it Yourself • Writing a successful iPhone app on your own requires keeping some key points in mind • Allow for learning curve • Keep in mind the characteristics of your app that could make development more difficult• Even if it’s a small app, don’t think of it as a small project - develop with rigor• Learn the Human Interface Guidelines, the frameworks, and the “Apple way”
    20. 20. Complexity of Apps • Simple Apps • Similar to a built-in apps • Few API integrations • Uses standard UI elements • Complex Apps • External API Integration (such as social networking) • Custom UI Elements • Augmented Reality, Gaming, 3D etc.
    21. 21. Thoughts on Complexity • Using almost any one feature can be considered simple. • Complexity happens when you combine many simple things together. • Is ____ possible? Yes. How much time and money do you have?
    22. 22. iOS Developer Environment • XCode - Apple’s IDE • Yes, you need a Mac for that. • iOS Developer Program - $99/year • Objective-C Language • Similar to C++, Smalltalk • Other tools
    23. 23. Alternative Environments • Appcelerator Titanium • HTML5/CSS3/JavaScript --> Native Code • Up to 80% Code Re-Use • iPhone and Android • PhoneGap • Non-native code, builds “app” that is browser • Open Source, free (as in beer)
    24. 24. iPhone SDK Features UI Elements Very customizable: Less customizable: Buttons Navigation bars Pickers Toolbars Progress indicators Tab bars Sliders Popovers (iPad) Text fields Alerts Switches Action sheets Images Table (list) views Web view Split view (iPad)
    25. 25. iPhone UI Controls
    26. 26. iPhone UI Navigation, tools, and content
    27. 27. iPhone UI Table views
    28. 28. iPhone SDK Features Frameworks Location/orientation Motion/accelerometer Camera Telephony Address book In-app purchase Map Media (audio/video) Notifications Graphics Core data Multitasking Networking Animation
    29. 29. Getting Your App in the Store • Submission and review process • • iTunes Connect • Need: • Large (512x512) icon • Description • Screen shots • Search keywords
    30. 30. Marketing Your App • Myth: “If you build it, they will come” • Fact: There are over 300,000 apps in the iOS App Store (and a whole lotta noise) • Make a splash in a short period of time; coordinate outreach efforts across channels • Use all available channels • All existing customer channels (web, email, more) • Traditional & Social Media • In-App Ad Networks (AdMob, MobClix)
    31. 31. Pricing Your App - Free or Paid? • Cost to break Top 100 via paid advertising approx $1,875/day.* • Free apps are downloaded far more than paid apps.** • Free applications in the Top 100 (out of 150,000+ apps) see >10k downloads daily (contact with app ranked #82 in Top Free has ~10k daily downloads).* AdWhirl Blog (2009)** TechCrunch Article (2009)
    32. 32. Future of the iPhone ?One can only speculate.• Faster Processor (given)• Digital Wallet - Near Field Communications (NFC)?• LTE Broadband?
    33. 33. Questions? @KeyLimeTie KeyLimeTie 3010 Highland Pkwy, Suite 500 Downers Grove, IL 60515 We’re Hiring: •iPhone/iOS Developers •Java Developers •Business Analyst