Published on February 28, 2014
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 Workﬂow Methodology Development Life Cycle Testing Continuous Integration Deployment Not getting into design or code speciﬁcs 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 ﬁles 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, ﬁx 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 modiﬁcation code 2nd Line of Defense: Automated UI Testing Test user interactions and typical user ﬂows 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 veriﬁcation that all features and updates are in fact there Verify push notiﬁcations 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 ﬁnd 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? firstname.lastname@example.org @jasongrandelli
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...
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.
Mobile Workflows. Mobiler Zugriff auf SRM Geschäftsprozesse. ... Advanced Workflows for Building Rock-Solid Ionic Apps, Parts 2 and 3 August 24th ...
Thinking Mobile Thoughts & ideas on enterprise mobility. Search for: Subscribe to the RSS feed. ... 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 ...
Advanced workflows for building rock-solid Ionic apps. Part 1: Playground Love this guide? Let the community know by clicking the ...
Building workflows with Spotify's Workshop for e-Infrastructures for Massively Parallel Sequencing Uppsala, Jan 19-20, 2015 Samuel Lampa UU/Dept of Pharm ...
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 ...
We know building inside ... Without SolidCAD Solutions to coordinate our Revit ... of building solutions supporting both BIM- and CAD-based workflows, ...
Advanced workflows for building rock-solid Ionic apps: develop, prototype, test, build and deliver high quality apps with Yeoman, Gulp, Bower, Angular ...