Skip to content

AckeeEDU/mi-ios-2019

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mi-ios-2019

01. Advanced Xcode

branch: 01-advanced_xcode

  • xcworkspace -> xcodeproj
  • targets
    • iOS, tvOS, macOS apps
    • app extensions (today widget, iMesssage ext., klávesnice apod.)
    • tests
    • framework
    • aggregate
  • configurations
    • výchozí Debug & Release
  • build settings
    • bundle ID per configuration
    • společná verze pro všechny targety
  • schemes
  • build phases
    • generování build number z počtu commitů pomocí "Run script build phase" a preprocess Info.plist
  • ACKLocalization
    • stahování Localizable.strings ze spreadsheetu jako aggreagate target
  • SwiftGen
    • Run script build phase na generování swift enums pro localizable klíče

⚠️ Necheckoutujte se do commitu Add SwiftGen.! Něco se mi tam nepovedlo a strašne vám to rozbije git.

⚠️⚠️ Na cviku jsme nastavovali swiftgen pomocí swiftgen.yml. Podle dokumentace a všech dostupných informací máme všechno správně (input/output files u build phase apod.), ale stejně to nefunguje. Po odstranění konfiguráku a volání swiftgenu příkazem s parametry to funguje správně - viz poslední commit.

02. Advanced Swift

branch: 02-advanced_swift

  • doplnění prvního cvika o shared schemes a shared breakpoints
  • closures
  • advanced enums
  • built-in protocols
  • custom operátory
  • protocol extensions
  • generiky
  • conditional protocol conformace
  • protocol and class composition

03. Reactive programming

TODO

04. MVVM

TODO

05. Dependency injection & tests

TODO

06. CI

Build Status

branch: 06-ci

  • k čemu je CI dobré
  • možnosti CI serverů
  • Xcode CLI
    • xcodebuild
    • xcpretty
  • Travis CI
    • GitHub integrace
    • .travis.yml
  • Gemfile
  • fastlane
    • verze Xcodu
    • actions cocoapods, scan, gym
    • Fastfile

07. Flow coordinators

TODO

08. Animations & Transitions

TODO

09. Push notifications & App Extensions

branch: 09-pushes+extensions

Push notifications

  • vyžadují explicitní App ID
  • lze testovat pouze na reálném zařizení (nelze v simulátoru)
  • nelze vyvíjet s free developer accountem
  • request permissions od uživatele
  • payload notifikace
  • zasílání testovacích notifikací přes test appku
  • handling reakce na otevření notifikace
  • přidání custom actions pomocí kategorií

Example payload notifikace pro náš projekt:

{
    "aps":{
       "alert":{
          "title":"Push title",
          "body":"Push body"
       },
       "sound": "default",
       "category": "CATEGORY"
    },
    "alertTitle": "Title",
    "alertMessage": "Message",
    "buttonText": "OK"
 }

App Extensions

  • example push notification service extension
  • example iMessage extension
  • sdílení dat mezi iOS app a její extension pomocí App Group
    • vyžaduje explicitní App ID
    • nelze s free developer accountem

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published