如何提升 iOS 開發速度?

35
܋iOS樄咳蝧ଶ牫 Swift girls 2/20 Sean Chen 夹ညᑀದ

Transcript of 如何提升 iOS 開發速度?

iOS Swift girls 2/20

Sean Chen

QUICK POLL•

• Swift

• Command line

• git

• git sub-module

• Design pattern

• Fastlane

SEAN

• Found

• System & App development

• HackNTU 2015 award, 2016 iOS Speaker

CORE IDEAS

• Clean code

• Automation

• How to write less and more effective?

• Automation for Continuous Integration

HOW TO WRITE LESS?

A. Follow OOP guides

B. Snippet, snippet and snippet

C. Clean Project Structures

D. Use Design Patterns

A. OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING

• 4 major principles

• Abstraction

• Encapsulation (Accessor, Mutator)

• Inheritance

• Polymorphism

• Best Practice: Code Review

ABSTRACTION

• is used to manage complexity. Software developers use abstraction to decompose complex systems into smaller components

ABSTRACTION

• Class

• Class

ABSTRACTION

ENCAPSULATION

B. SNIPPETS

• Xcode Demo

• Evernote

SNIPPETS

• Xcode Demo

• Evernote

SNIPPETS

• Xcode Demo

• Evernote

SNIPPETS

• Xcode Demo

• Evernote

C. PROJECT STRUCTURE

• MVC & ViewController

• Controller

PROJECT STRUCTURE - 2

• ViewControllers

• VC

PROJECT STRUCTURE - 3• Core Logic

• Model

• Helpers

• Codebase (git submodule)

• UI Subclasses

PROJECT STRUCTURE - 4

• Views

• Color

• Storyboard/ Xib

• Assets

D. USE DESIGN PATTERNS• What is design patterns?

• Why use them?

• https://github.com/ochococo/Design-Patterns-In-Swift

• Singleton

• Façade

• Bridge

SINGLETON

FAÇADE

• git

-2

• git submodule

• git repo git repo

• repo

• ex: https://github.com/SeanChenU/Swift_Codebase

FASTLANE - • sudo gem install fastlane

• https://fabric.io/features/distribution?utm_campaign=fastlane.tools

• Command line

• Build iOS ipa

• Testflight

• Slack, Crashlytics

• APNs profiles

FASTLANE - FILES

• Appfile

• Fastfile

/

IS HIRING…!

• iOS full-time/ part-time developer

• appar.com.tw

• facebook.com.tw/sean820816

[email protected]

SOURCES

• http://www.iphonelife.com/blog/31369/swift-programming-101-inheritance-polymorphism

• https://github.com/ochococo/Design-Patterns-In-Swift