Monday, April 20, 2015

Beginning Real World iOS App Development

Beginning Real World iOS App Development


The slide I presented during 1 day training for beginning real world iOS app development on April 7, 2015.

Event details:
http://bit.ly/belajarswift
https://procodecg.wordpress.com/2015/04/07/ios-app-development-training-with-dycode/
Published in: Mobile



Transcript

  • 1. Please tweet with hashtag #BelajarSwift
  • 2. Your tools? Xcode 6
  • 3. Andri Yadi Bayu Wicaksono
  • 4. Andri Yadi CEO, DyCode
  • 5. The first & largest iOS & OSX developer community in Indonesia ID-Objective-C President
  • 6. 7 years in a row 1 of 3 Azure MVPs in Indonesia, of 114 in the worlds
  • 7. Bayu WY Mobile Team Lead, DyCode
  • 8. What is “real world”? ✔
  • 9. Leverage backend services for storage, logics, and other processings Use 3rd party libraries Access 3rd party APIs Learn from real world experienced developer :) Arguably…
  • 10. Intro to iOS development & Swift basics Your first iOS app project Most used UIKit, storyboard, segue Use 3rd party library and API Azure Mobile Services (ZuMo) ZuMo iOS SDK BONUS: Surprise Topic!!! for that, we’ll cover…
  • 11. iOSDevelopment stuffs Let’s start with…
  • 12. iOS Devices
  • 13. iOS
  • 14. http://developer.apple.com/ios iOS
  • 15. Xcode iOS Simulator iOS Developer Library iOS
  • 16. Required StuffsRequired Stuffs
  • 17. iOS in form of Xcode Latest
  • 18. Optional Stuffs
  • 19. Actual iOS Devices
  • 20. More development stuffs
  • 21. Objective-C
 Since 2008
  • 22. Introducing Swift… Since June 2, 2014
  • 23. Required StuffsWhat does it mean for us? for long-time iOS developers - with Objective-C
  • 24. with… It’s new way to achieve the same result
  • 25. Modern Designed for Safety Fast & Powerful Interactive Playgrounds Ready today! Swift
  • 26. Your skill/knowledge of Cocoa Touch framework is still applicable
  • 27. that have no experience developing iOS apps What is it for the rest of us?
  • 28. Easier, faster to learn Safer More fun You can skip Objective-C completely Swift is arguably…
  • 29. Bad news is… Still need to learn about 
 Cocoa Touch framework
  • 30. Swift Playground Demo
  • 31. Design Pattern
  • 32. Model-View-Controller design pattern Model View Controller
  • 33. Model-View-Controller design pattern Outlet
  • 34. Can View speak to Controller? Outlet ?
  • 35. Sort of… The communication is“blind”and structured Outlet ?
  • 36. The View sends the Action when stuffs happen in the UI Target Action
  • 37. WHAT R U TALKIN’ ABOUT?
  • 38. Another way, Controller sets itself as the View’s delegateDelegate
  • 39. The delegate is set via a ProtocolDelegate
  • 40. Controllers are almost always that data source (not Model!) Delegate Data Source
  • 41. The Model is (should be) UI independent. What if the Model has information to update or something? Delegate Data Source
  • 42. Use broadcast mechanism. Controllers (or other Model) can“listen”to interesting stuff. Delegate Data Source Notification & KVO
  • 43. Model-View-Controller design pattern NowPlayingController NowPlayingView NowPlaying
  • 44. ???
  • 45. iOS frameworks
  • 46. Touch ID PhotoKit Camera API HealthKit ResearchKit CloudKit HomeKit SceneKit SpriteKit Metal Handoff Extensions WatchKit
  • 47. Accelerate Accounts AddressBook AddressBookUI AdSupport AssetsLibrary AudioToolbox AudioUnit AVFoundation AVKitCFNetwork CloudKit CoreAudio CoreAudioKit CoreBluetooth CoreData CoreFoundation CoreGraphics CoreImage CoreLocation CoreMedia CoreMIDI CoreMotion CoreTelephony CoreText CoreVideo EventKit EventKitUI ExternalAccessory Foundation GameController GameKit GLKit GSS HealthKit HomeKit iAd ImageIO IOKit JavaScriptCore LocalAuthentication MapKit MediaAccessibility MediaPlayer MediaToolbox MessageUI Metal MobileCoreServices MultipeerConnectivity NetworkExtension NewsstandKit NotificationCenter OpenAL OpenGLES PassKit Photos PhotosUI PushKit QuartzCore QuickLook SafariServices SceneKit Security Social SpriteKit StoreKit SystemConfiguration Twitter UIKitVideoToolbox WebKit
  • 48. Human Interface Design https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/
  • 49. Take advantage of the whole screen Reconsider visual indicators of physicality and realism Translucent UI elements hint at the content behind them Deference
  • 50. Use plenty of negative space Let color simplify the UI Ensure legibility by using the 
 system fonts (Dynamic Type) Clarity Embrace borderless buttons
  • 51. Translucent background Displays lists in layers Enhanced transitions to give users a sense of hierarchy and depth Depth
  • 52. http://www.teehanlax.com/tools/iphone
  • 53. Prepo
  • 54. Base
 Sqlite Manager
  • 55. App Store Submission
  • 56. you app can use this badge!
  • 57. Craving to know more about 
 iOS development? Let’s join upcoming iOS 8 development class - with Swift http://edu.dycode.co.id
  • 58. Required StuffsBackend Services for long-time iOS developers - with Objective-C
  • 59. DB & Storage Authentication Logic Push API Wrapper Mobile Backend as a Service Leverage BaaS
  • 60. Mobile Services Microsoft Azure Mobile Services a lot of BaaS providers Turn out…
  • 61. Microsoft Azure Mobile Services
  • 62. So, what is it? Storage Authentication Logic Push Scheduler
  • 63. Get started Visit azure.com Free trial! worth $200 Or create temporary service: https://trywebsites.azurewebsites.net
  • 64. BONUS TOPIC?
  • 65. Intro to WatchKit
  • 66. WatchKit app Demo Just do the demo
  • 67. DyCode www.dycode.com @dycode