• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Building Solid Mobile Workflows
 

Building Solid Mobile Workflows

on

  • 627 views

Mobile applications can be intimidating… especially for iOS and Apple’s walled garden. There’s provisioning profiles, signing certificates, push certificates, entitlements, iTunes Connect & ...

Mobile applications can be intimidating… especially for iOS and Apple’s walled garden. There’s provisioning profiles, signing certificates, push certificates, entitlements, iTunes Connect & Apple Developer portals, Human Interface Guidelines and a myriad of rules that will get your app rejected or removed if broken. And that’s just the bare minimum to get off the ground with your first app…but who wants to just get off the ground? Instead, build a solid workflow that will greatly decrease friction when developing and maintaining both enterprise and customer facing mobile applications. We’ll take a look at the iOS basic process as well as more advanced process enhancements to really level up your mobile app workflow.

Statistics

Views

Total Views
627
Views on SlideShare
235
Embed Views
392

Actions

Likes
0
Downloads
5
Comments
0

5 Embeds 392

http://www.panma.org 385
https://twitter.com 4
http://feedly.com 1
http://lists.panma.org 1
http://www.google.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Building Solid Mobile Workflows Building Solid Mobile Workflows Presentation Transcript

    • jasongrandelli@gmail.com @jasongrandelli
    • Who am I? Why should you care? Mobile Engineer @ URBN inc Builder of native iOS apps. Both customer facing and enterprise Previously at Bluecadet Interactive Design background, writing code for 8 years
    • What we’ll discuss & what we won’t Planning & designing a mobile app App Development Workflow Methodology Development Life Cycle Testing Continuous Integration Deployment Not getting into design or code specifics All with an iOS slant
    • Planning & Design Experts Required App UX & UI are very different web Not all mobile created equal. iOS & Android require respective experts Understanding platform UX & UI conventions makes your engineers lives easier Lean on your engineers. They are by default platform experts They can help your UX & UI staff create a well crafted, platform appropriate app
    • Methodology agile (with a lower case ‘a’) Bare minimum daily(ish) stand ups, sprint planning, demo 2 week sprints Plan to release after each sprint Plan features so they can be completed in a sprint Even if this means breaking up the work into smaller chunks Tools: depends on how hardcore you are Jira, Trello, Basecamp (from hardcore to laid back)
    • Sample Schedule Week 1 Tue: Sprint Planning Wed: Sprint starts Week 2 Thur: Sprint Grooming Week 3 Mon: Sprint Demo. Release candidate distributed to larger testing group Tue: next Sprint Planning Rinse & Repeat Submit to App Store Always hold for developer release
    • Development Life Cycle (Version Control) Source/Version Control is a must! 3 base branches (master, beta, dev) Pull requests for major work (multiple files changed) Pull requests should be reviewed (when possible) Commit and push often. Nothing is too little to commit Make commits as small and inclusive as possible. Avoid commits with multiple functionality changes Commit messages should be as concise and descriptive as possible
    • Development Life Cycle (Sample) Branch off dev. Name branch after feature ticket Feature complete, pull request into dev Reviewing dev accepts, merges into dev Sprint complete. Merge into beta. Release candidate built from beta Release candidate has a bug Branch off beta, fix the bug, merge the branch into beta and dev Release candidate approved. Merge into master Prep for App Store submission on master Submit to App Store from master
    • Testing & Quality Control (Robots) 1st Line of Defense: Unit Tests Great for model level code (data) & data modification code 2nd Line of Defense: Automated UI Testing Test user interactions and typical user flows Robots are great at testing happy path Not so good at edge cases If you're spending more than 1/3 of your time writing test cases, you're doing it wrong.
    • Testing & Quality Control (Humans) Last Line of Defense: Humans Never release code without actual humans testing it Someone other than yourself What to test? New features/code (duh) Regressions (everything) Just because because you think new code doesn’t effect some old code doesn’t mean you’re right Never release with out full regression testing
    • Testing & Quality Control (Strategy) Testing starts with the developer. Be a good citizen. Dev releases often so features can be tested continuously, not just at the end of the sprint. Writing testing scripts so you don’t miss anything Ensure complete device and OS coverage Every device the app will run on (iPhone 4s - 5s) Every major AND minor OS release (6.0, 6.1, 7.0)
    • Continuous Integration (CI) Constant releases based on Source Control commits and a tool like Jenkins Your CI tool should: Pull newest code Run unit tests Build latest code Run Automated UI Tests Create a new build & submit to a software distribution service (like TestFlight) Compile release notes based on commit messages Notify developers of pass/fail
    • App Deployment Have a checklist Release builds off Master Before submission, test the upgrade process from current production app to new version Ensure all services are receiving and reporting the new version Final verification that all features and updates are in fact there Verify push notifications work correctly Submit to the App Store & “Hold for Developer Release”
    • Post Deployment Monitor production crash reports Compare against previous versions Look for new and increasing crashes Take reviews with a grain of salt (haters gonna hate) Use crashes, reviews, and other feedback mechanism to plan future sprints Dogfood your app!
    • Tools Source Control (Git) Dev & Beta distribution (TestFlight) Ticket tracking (Jira) Crash reporting (Crittercism) Analytics (Appboy/Localytics) Communication (Appboy)
    • Extras Get an Enterprise account (unlimited devices, no UDID wrangling) Apps are nothing without strong services Don’t try to roll your own Push Service Don’t try to support too many OS releases Respond to user feedback Get to WWDC and get your app/designs reviewed by an Apple UX Specialist (invaluable) Download and use every app you can find Gestures are sexy, but don’t rely on them Read the HIG (Human Interface Guidelines)
    • Resources UI/UX https://developer.apple.com/library/ios/documentation/ userexperience/conceptual/MobileHIG/index.html http://pttrns.com https://beautifulpixels.com http://capptivate.co http://inspired-ui.com Version Control (git) http://git-scm.com/book http://nvie.com/posts/a-successful-git-branching-model/
    • Resources (cont.) Misc http://iosdevweekly.com http://www.merowing.info/2014/02/ios-developer-tools/ http://nshipster.com http://typicalprogrammer.com/how-to-developunmaintainable-software/
    • Questions? jasongrandelli@gmail.com @jasongrandelli