Successfully reported this slideshow.
Your SlideShare is downloading. ×

Adventures in Wonderland - A Plone Developer's Year in iOS

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
1356930 634669665657537500
1356930 634669665657537500
Loading in …3
×

Check these out next

1 of 37 Ad

Adventures in Wonderland - A Plone Developer's Year in iOS

Download to read offline

The slides from my talk at Plone Conference 2015 in Bucharest.

After 15 years of working purely in Python, I was thrown head-first into the world of iOS development. Taking over the management of a mobile app being developed for a Python web application, I've had to deal with managing iOS developers, understanding the iOS ecosystem, and working out Apple's byzantine procedures and processes.

The slides from my talk at Plone Conference 2015 in Bucharest.

After 15 years of working purely in Python, I was thrown head-first into the world of iOS development. Taking over the management of a mobile app being developed for a Python web application, I've had to deal with managing iOS developers, understanding the iOS ecosystem, and working out Apple's byzantine procedures and processes.

Advertisement
Advertisement

More Related Content

Advertisement

Similar to Adventures in Wonderland - A Plone Developer's Year in iOS (20)

More from Matt Hamilton (13)

Advertisement

Recently uploaded (20)

Adventures in Wonderland - A Plone Developer's Year in iOS

  1. 1. Matt Hamilton matt@quernus.co.uk A Plone Developer's Year in iOS Adventures in Wonderland
  2. 2. enquos is the first system to combine the tracking of nutrition, fitness & health data so that insights can be made between day to day actions and health outcomes. It is completely integrated, consolidating the functions of multiple applications and tracking devices into one secure platform while providing tools for making smart choices. enquos
  3. 3. “Curiouser and curiouser” — cried Alice
  4. 4. Homekit HealthKit CoreData EventKit CloudKit PassKit PushKit Foundation CoreMotion CoreAudio CoreText
  5. 5. Xcode
  6. 6. App Development Process
  7. 7. Certificates Keys Provisioning Profiles Bundle IDs App IDs Schemes Configurations …oh my!
  8. 8. iOS Build Process • Long • Arcane • Requires variations • Requires certificates / keys
  9. 9. http://appreviewtimes.com/ios/annual-trend-graph
  10. 10. Many weeks latency
  11. 11. Our automated build system
  12. 12. Fastlane • Automates builds • Allows multiple ‘lanes’ to be built • Repeatable, scriptable builds • An ‘API’ for iTunes Connect • Takes the hassle out of the build and deployment process
  13. 13. def do_build(scheme, configuration) increment_build_number( build_number: ENV['BUILD_ID'] ) profile = 'build/nutrition.mobileprovision' if configuration == 'Release' app_identifier = 'com.enquos.nutrition' display_name = 'enquos nutrition' set_istest_false sigh( app_identifier: app_identifier, filename: profile, ) else app_identifier = 'com.enquos.Nutrition.alpha.' + GIT_BRANCH_ID display_name = 'enquos nutrition ' + GIT_BRANCH sigh( app_identifier: '*', adhoc: '1', filename: profile, ) end update_info_plist( app_identifier: app_identifier, display_name: display_name, plist_path: 'Nutrition/Info.plist', xcodeproj: 'Nutrition/Nutrition.xcodeproj', ) update_project_provisioning( xcodeproj: "Nutrition/Nutrition.xcodeproj", build_configuration_filter: ".*Nutrition.*", profile: profile, ) ipa( scheme: scheme, configuration: configuration, embed: profile, xcargs: '-derivedDataPath ./build', ) end
  14. 14. Per-branch app deployment
  15. 15. Things I’ve learnt
  16. 16. iOS 8 → 9 Swift 1.2 → 2.0 Incompatibilities :( Xcode 6.4 → 7
  17. 17. import Foundation extension String { public func toIso8601Date() -> NSDate? { let formatter = NSDateFormatter() formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) formatter.dateFormat = "yyyy-MM-dd" return formatter.dateFromString(self) } } https://www.netsight.co.uk/ 2015/09/03/an-introduction- to-swift-from-a-python- perspective/
  18. 18. • Imposter syndrome is real • Friendly communities rock • Lack of virtualisation sucks • Good documentation is great • I still don’t understand Ruby
  19. 19. Thanks Matt Hamilton matt@quernus.co.uk https://quernus.co.uk @hammertoe

×