SlideShare a Scribd company logo
One month to the
app store
Christopher Winstanley
@CWinstanley90
Problem
https://tfgm.com/
Tram Times
1. Ideas
• Lots of half started projects
• Set yourself a month -
• 2 weeks of development days
• 40 hours of development
• Get it into the hands of users early
2. Maintainability
Coordinators
http://khanlou.com/2015/10/coordinators-redux/
Refactor
3. Frameworks
Adapters
https://www.raywenderlich.com/126365/ios-frameworks-tutorial
4. App Extensions
5. Testing
• Spend time writing features not tests
• Now I have some users I will spend 2
months writing tests to stop regression
• On any other project TDD :-)
• http://codingdojo.org/kata/Bowling/
6. WatchKit
• WatchKit very different to UIKit
• Different container, User Defaults
• OS Changes
• Need to create a watch specific framework
7. Tooling
- Limit dependencies
- 10 minute commits
- Cocoapods
- Icons 8
- CircleCI
- http://appreviewtimes.com/ https://icons8.com/
https://firebase.google.com/docs/ios/setup?authuser=0
- Firebase
- Crashlytics
7. Tooling
7. Tooling
https://fastlane.tools/
- Snapshot
- frameit
- Deliver
8. Testers
• Annoy people at work
• Use Hockey or TestFlight
9. Accessibility
- VoiceOver Support
- Settings -> General -> Accessibility -> VoiceOver
- Accessibility Inspector
https://www.raywenderlich.com/142058/ios-accessibility-tutorial
10. Share Your Ideas
https://github.com/Winnie90/TFGMLive
Tram Times
@CWinstanley90
https://goo.gl/XLnCTe

More Related Content

What's hot

Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Edureka!
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
Kazuaki Matsuo
 
Transcript (3)
Transcript (3)Transcript (3)
Transcript (3)
bharat1791
 
Pearson Mobile App Development
Pearson Mobile App DevelopmentPearson Mobile App Development
Pearson Mobile App Development
zpinter
 
ReactJS
ReactJSReactJS
Implement and manage build infrastructure
Implement and manage build infrastructureImplement and manage build infrastructure
Implement and manage build infrastructure
Eng Teong Cheah
 
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are comingKhairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
Agile Impact Conference
 
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloudITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
Istanbul Tech Talks
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Vaibhav Dash
 
React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.
UA Mobile
 

What's hot (10)

Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
 
Transcript (3)
Transcript (3)Transcript (3)
Transcript (3)
 
Pearson Mobile App Development
Pearson Mobile App DevelopmentPearson Mobile App Development
Pearson Mobile App Development
 
ReactJS
ReactJSReactJS
ReactJS
 
Implement and manage build infrastructure
Implement and manage build infrastructureImplement and manage build infrastructure
Implement and manage build infrastructure
 
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are comingKhairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
Khairul Zebua - Tokopedia case study : Brace yourself, Alerts are coming
 
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloudITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
ITT 2015 - Vincent Garrigues - Continuous Integration at SoundCloud
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.
 

Similar to To the App Store in One Month

0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
BinNguynVn3
 
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud PiesDevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
Centric Consulting
 
Htf2014 managing share point projects with agile and tfs andy
Htf2014 managing share point projects with agile and tfs   andyHtf2014 managing share point projects with agile and tfs   andy
Htf2014 managing share point projects with agile and tfs andy
Sparkhound Inc.
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of Us
C4Media
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
Talbott Crowell
 
Software life cycle
Software life cycleSoftware life cycle
Software life cycle
kingseif
 
Agile Scrum Methodologies
Agile Scrum MethodologiesAgile Scrum Methodologies
Agile Scrum Methodologies
Prateek Aggarwal
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
Moataz Nabil
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
Mayank Srivastava
 
Scrum discussion
Scrum discussionScrum discussion
Scrum discussion
Roshan Venugopal
 
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer SuccessWSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2
 
Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019
Alan Pearson Mathews
 
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
Lucas Sacramento
 
Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t
Synerzip
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
Bora Bilgin
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to Protractor
Florian Fesseler
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid World
Courtney Kissler
 
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वोAgile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
MnyMehr
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
Teamstudio
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
Sauce Labs
 

Similar to To the App Store in One Month (20)

0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
 
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud PiesDevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
 
Htf2014 managing share point projects with agile and tfs andy
Htf2014 managing share point projects with agile and tfs   andyHtf2014 managing share point projects with agile and tfs   andy
Htf2014 managing share point projects with agile and tfs andy
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of Us
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
 
Software life cycle
Software life cycleSoftware life cycle
Software life cycle
 
Agile Scrum Methodologies
Agile Scrum MethodologiesAgile Scrum Methodologies
Agile Scrum Methodologies
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
 
Scrum discussion
Scrum discussionScrum discussion
Scrum discussion
 
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer SuccessWSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
 
Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019
 
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
 
Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to Protractor
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid World
 
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वोAgile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
Agile - Basics.pptxjvjplhxitstistidara तिहोचपवपज्वो
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
 

To the App Store in One Month

Editor's Notes

  1. Every app should solve a problem Started at BBC Missing Trams beta.tfgm.com TFGM App Registered for the API Received Email on 22nd Released on
  2. Every app should solve a problem Started at BBC Missing Trams beta.tfgm.com TFGM App Registered for the API Received Email on 22nd Released on
  3. • Add your favourite stops to the app to access the tram times quickly. • Departure message board for the latest information on your tram line. • Quickly access your first stop using the Today Widget. • Quickly access your saved stops using 3D Touch. • View the latest tram times for your saved stops on your Apple Watch. Data is realtime and updated live direct from Metrolink.
  4. yes this is another 10 tips to the app store talk considerations when working at a short time scale development tools Whose Xcode project looks like this set a month for your idea to mvp get it into the hands of users some tips on getting to the app store
  5. Lots of different app architectures, MVC, MVVM-C SRP The Single Responsibility Principle (SRP) states that each software module should have one and only one reason to change. http://blog.cleancoder.com/uncle-bob/2016/01/04/ALittleArchitecture.html Layers http://alistair.cockburn.us/Hexagonal+architecture
  6. Each view controller is now isolated. View controllers are now reusable. Every task and sub-task in your app now has a dedicated way of being encapsulated. Coordinators separate display-binding from side effects. Coordinators are objects fully in your control.
  7. Wrap your dependencies in frameworks Hexaganol Protection from change Tram api changed I want to use something other than user defaults Judgement call on system frameworks Easier for re-use
  8. Today Extension Imports Station request framework, feature without much effort Home screen quick actions 3D Touch Messages Spotlight Index
  9. Don’t test spend time writing features not tests will probably spend the 2 months after testing
  10. Took a long time WatchKit different to UIKit Complications
  11. Github - 10 minute commits, Bitbucket Circle CI Limit dependencies Don’t use AFNetworking, URLSession, Decodable https://github.com/AFNetworking/AFNetworking Cocoapods over spm or carthage
  12. All much of a muchness Big push on analytics No deployment yet Nice features for push notifications
  13. Fastlane build automation tools Snapshot -> Demo Deliver bump version numbers
  14. • Add your favourite stops to the app to access the tram times quickly. • Departure message board for the latest information on your tram line. • Quickly access your first stop using the Today Widget. • Quickly access your saved stops using 3D Touch. • View the latest tram times for your saved stops on your Apple Watch. Data is realtime and updated live direct from Metrolink.