Building Solid Mobile Workflows

67 %
33 %
Information about Building Solid Mobile Workflows

Published on February 28, 2014

Author: jgrandelli



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. @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 userexperience/conceptual/MobileHIG/index.html Version Control (git)

Resources (cont.) Misc

Questions? @jasongrandelli

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Approval - Mobile Workflows :: Kontakt

Advanced Workflows for Building Rock-Solid Ionic Apps, Parts 2 and 3 August 24th. Advanced Workflows for Building Rock-Solid Ionic Apps, Part 1 July 6th.
Read more

Approval - Mobile Workflows :: Produkt

Mobile Workflows. Mobiler Zugriff auf SRM Geschäftsprozesse. ... Advanced Workflows for Building Rock-Solid Ionic Apps, Parts 2 and 3 August 24th ...
Read more

Advanced Workflows for Building Rock-Solid Ionic Apps ...

Thinking Mobile Thoughts & ideas on enterprise mobility. Search for: Subscribe to the RSS feed. ... Advanced Workflows for Building Rock-Solid Ionic Apps ...
Read more

Advanced Workflows for Building Rock-Solid Ionic Apps ...

Advanced Workflows for Building Rock-Solid Ionic Apps ... We’ve been developing mobile apps for years–long before Ionic and Angular made it into our ...
Read more

Advanced workflows for building rock-solid Ionic apps ...

Advanced workflows for building rock-solid Ionic apps. Part 1: Playground Love this guide? Let the community know by clicking the ...
Read more

Building Scientific Workflows with Spotify's Luigi - Science

Building workflows with Spotify's Workshop for e-Infrastructures for Massively Parallel Sequencing Uppsala, Jan 19-20, 2015 Samuel Lampa UU/Dept of Pharm ...
Read more

Advanced Workflows for Building Rock-Solid Ionic Apps, Part 1

Advanced Workflows for Building Rock-Solid Ionic Apps, Part 1 Jonathan Grupp is a software engineer at M-Way Solutions, the owner and maintainer of ...
Read more

Building - SolidCAD Solutions

We know building inside ... Without SolidCAD Solutions to coordinate our Revit ... of building solutions supporting both BIM- and CAD-based workflows, ...
Read more

GitHub - mwaylabs/generator-m-ionic: Advanced workflows ...

Advanced workflows for building rock-solid Ionic apps: develop, prototype, test, build and deliver high quality apps with Yeoman, Gulp, Bower, Angular ...
Read more