EZTABLE IDEAS 是 EZTABLE 成員揮灑熱情和大家分享專業及創意的網誌。 EZTABLE 讓消費者 24 小時都可以在網路訂位全台灣最優質的餐廳,同時提供餐廳經營者 e 化的訂位管理系統 (雲端、iPad、智慧型手機)

【Workshop】From Web Development to iOS

七月 28 2014 Published by under Engineering

【Workshop@140725】

Topic: From Web Development to iOS
Speaker: Zakk
slideshare: iOS 101 for web developer

 

 

寫過web,想轉化跑道試試寫iOS卻不知從何下手?
想知道web開發和iOS的開發上,有何相同、相異之處?
今天請到EZTABLE的Zakk  為我們介紹 iOS的開發! 

 1-Photo 25-07-2015

 

 

 

Photo 25-07-2014 15 04 46--投影片2

Objective-C–蘋果的作業系統

  • Interface & Implement──java 裡的class,等同於 Objective-C裡的interface,在class寫之前先定義interface。
  • Property──跟java一樣。
  • Strong & Weak Reference
    宣告成Strong,就是希望這個變數指過去的對象不會被release。 
    宣告成Weak, 就是允許這個變數指過去的對象可以被release。 
  • Protocol & Category
    類似JAVA的interface就是Protocol 。
    Category: 若要對某些class加一些意義的function,可直接宣告Category,然後就可以對class直接增加一些你定義的function。
  • Delegate & Code Block
    使用者點button,然後你的code會收到點button這個事件,後面這就是用Delegate來寫的。
    Code Block就像是JavaScript code back function,可以把你code block包在裡面, 傳來傳去。

 

 

 

 

投影片3

Application Life Cycle

 

 

 

2-Photo 25-07-2014 15 16 25_1投影片4

Application Architecture

框框是APP,APP透過API與Server溝通。
主要是由Controller在做所有的動作(btw 你大部分都是在寫Controller),
update view、管理model、update server等,
比說如Controller owns Model,Controller可以叫Model去update Data,回來後跟Controller講,再去own這個view,再去update。

 

投影片5

Decenterlized Routing

在iOS裡很麻煩,它不像web有個Routing,有很多framework,訂好Routing的規則。
iOS全部都是Controller決定!

ex:使用者點了某個button,然後Controller收到,知道這個button要跳到哪一頁,
所以寫程式的人,整個藍圖、整個APP要怎麼跑都是在寫程式的人的腦袋裡的,
沒有像web一樣可以讓你很清楚的看出是怎麼運行的。

 

 

投影片7投影片8

Page Transitions 

所以 view Controller你可以決定頁面是要push一個頁面進來,還是跳下一頁,
同樣的button"cancel"在不同業面叫出來時會有不同的反應,
用Push進來的話,這個cancel button是要做Pop,
用Present進來的話,這個cancel button是要做Dismiss,
所以就要考慮清楚!!這個button定義的是什麼動作,會因為別人怎麼用而有所不同!

 

 

 投影片6

Switch Between Apps

在APP之間的切換,在iOS非常的不明顯,
原因是因為你很難知道別人的APP是怎麼被叫出來,
你也很難確定使用者在它手機裡是不是有裝某個APP。

 

使用者點某個button叫出APP做某件事情,要先判斷存不存在。

例如在我們APP中,要用Line來邀請朋友來用餐,那你就要判斷使用者手機裡的Line到底存不存在,
以及用Line邀請完後,要有一個 button讓它直接回來,因為它不像web有個"上一頁"。
所以
1.你就會想說把人找出,用LINE這樣管道好不好。
2.你要知道LINE的語法,你才知道如何發訊息給LINE的朋友。

 

 

投影片9 投影片10投影片11投影片12 

Code範例(可點及圖片放大看 or 點sildeshare)

Target──這是view通知Controller 使用者做的動作。
Delegate──是可以宣告一個Protocol,讓view controller去實做。
Block──意思是它是一段程式碼,自己可以包裝成一個變數。
Data-Binding in ios: KVO

 

 

知道以上的技巧後,memory的控制小心一點,
不要有Dead-Lock、不要有讓你的變數指到空的記憶體,
然後知道view如何跟Controller溝通跟Model溝通,就差不多知道如何寫iOS了!

 

 

 


 

如果您喜歡這篇文章可以點擊「讚」&「分享」

並歡迎訂閱EZTABLE IDEAS!  😀

如果你是學習力強,而且經驗值高的人才,
歡迎一起加入我們 EZTABLE!! 

EZTABLE at Linkedin-Senior Mobile Software Engineer

 

 


Related Posts Plugin for WordPress, Blogger...

No responses yet

發表迴響