作者Linux (Windows)
看板MacDev
標題[心得] 開發了一個月的 iOS 小作品
時間Mon Jul 6 00:34:43 2015
Hi (),
這次終於不是來問問題了 >"<a
從開始接觸 iOS Object-C 到現在應該一個月又多幾天了XD
從一開始的 Object-C 完全沒摸過,所以到現在才有點小進度
(心中有點開心的小悸動XD
一切都要歸功於板上大大們熱情的幫我回答問題,以及 Google 大神!
廢話不多說,先看影片!
Demo 小短片:
https://www.youtube.com/watch?v=HTgfTjmS2UI
GitHub Readme:
https://github.com/comdan66/catmap_ios
後端 GitHub:
https://github.com/comdan66/catmap_php
稍微說明一下,這就只是個到處模仿的小作品,我利用了 TableView
再經由客製化的 TableViewCell 去做出類似 Instagram、Facebook 的動態訊息頁
然後再利用 ImagePickerController 去做開啟相機、讀取相簿的功能~
並且利用 CLLocationManagerDelegate 來取得座標以及位置資訊!
接著找到了 REMarkerClusterer 這資源,讓我做到跟 Instagram 地圖很像似的功能
我將它稍微改造了一下,讓他可以載入圖片XD
至於呼叫 API 原本是使用自己寫的 http 函式庫,
但是有發現 AFNetworking 也不錯用,所以就使用它了!
還有當 Cell 在 Load 圖片時,我則是使用 AsyncImageView
來讓他可以非同步的載入圖片!
開發途中,我原本是使用 Main.storyboard 拉版的,但是遇到了很多問題
例如 Cell 雖然可以對 xib(nib) 定義好 identifier 名稱,
再用 dequeueReusableCellWithIdentifier 拉出,以免重複的 create 浪費
但是因為我的 Cell 的高度以及內容不同,所以必須定義每種 id 的 identifier
而 xib 的 identifier 卻不能動態的決定..
雖然可以定義好 identifier,當 cellForRowAtIndexPath 時在 Update 其內容
但是因為圖片是非同步載入,所以後會發生另一段故事...(菸
於是,所以,最後我就放棄的使用 storyboard,所以改換成用 code 來寫 UI
如此一來,便可以讓每個 Cell 搭配好資料的 ID 成為唯一的一個物件!
這樣就可以在 cellForRowAtIndexPath 不會重複的 Create!
這是我在 TableView 上的一點點小心得XD
因為以前寫過 C語言、Java,雖然沒有寫過 Object-C,不過我的心得是..
跟 C 好像!但是多了很多有趣的東西!
也幸好寫過 Java 的 GUI 介面,讓我對於介面的東西有點基礎..
(Java GUI 印象是,一直在 set 顏色,add 東西XD
雖然有了這點的小進度,但是還有很多東西我還沒摸到 >"<
像是推播通知、iBeacon、iClude、swift.. 等,只能一步步慢慢來了!
我後端、iOS 都放在 GitHub,有興趣的可以看下!
題外話,因為我是一個後端兼前端的攻城獅XD
所以這作品的前端、後端、API 都是自己來!
不過就是在上個月毅然決然的換跑道二轉
目前這算是我的階段性的作品,但是因為對 iOS 的職場生態不是很熟悉..
想說藉由這個小作品跟版上的大大請教,
依照我的 Code 以及狀況,是否可以直接找 iOS 工作了?
以及找工作時,是否有哪裡需要注意的地方?
以上,如果有興趣討論的話,或者我的 Code 可以哪裡有更好的地方
或文章內容有不妥或需改進的地方,歡迎各位大大指教 >"<
--
感謝曾經幫助過我的版友們~
感謝幫我設計版型、icon 的 Teresa Chu 大大~
感謝谷歌大大~
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.238.78
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1436114088.A.832.html
※ 編輯: Linux (175.182.238.78), 07/06/2015 00:36:29
推 sinss: 非常棒ㄟ! 07/06 01:04
推 Starflyx: 同是iOS新手推一個 07/06 01:06
→ Linux: sinss大,感謝XD 07/06 01:09
→ Linux: Starflyx大,一起努力吧!(握 07/06 01:09
推 cloudliu: 完成度好高,設計也很好看! 07/06 01:11
→ Linux: cloudliu大,感謝XD 幫我跟設計師講,感謝他的設計XD 07/06 01:14
推 neotek: 靠北 嚇死我了 07/06 01:15
※ 編輯: Linux (175.182.238.78), 07/06/2015 01:16:52
→ Linux: neotek大,怎麼了嗎 @@? 07/06 01:17
推 neotek: 控制馬啊 07/06 01:22
→ Linux: 哈哈哈哈,終於發揮效用了XD 07/06 01:24
推 yume190: 感覺蠻不錯低,只是新文章怎麼在最下面 07/06 01:30
→ yume190: 是我眼花嗎?怎麼感覺第一行出現我的ID 07/06 01:33
推 jamfly: 請問 jamfly 是? 跟我的id一樣 我的 07/06 08:39
→ darktt: 這個概念與現在公司的一個App非常相似,不過你可以參考看 07/06 08:44
→ darktt: 看,它叫做Buddii 07/06 08:44
推 howdiun: only for taipei QAQ 07/06 09:31
推 tentenlee: 用storyboard的cell動態配置高度變形 可以改用xib試試 07/06 09:37
→ tentenlee: 之前我搞了兩天他一直變形.. 最後改xib就正常了.. 07/06 09:38
推 async: 請問存擋到後端的資料你架在哪裡? 07/06 10:58
推 shinrenpan: 為什麼不用 QuickTime player 錄影 XD 07/06 12:33
推 HateDebris: 推! 07/06 12:36
→ Linux: 回 async 大,我存在 AWS 的 EC2 上面~我用的是 LAMP 07/06 15:56
推 tom19830924: 推 07/06 15:56
→ Linux: 回 shinrenpan大,因為我喜歡 run 實機,所以就用拍攝的XD 07/06 15:56
→ Linux: 回 tentenlee大,我就是用 xib,但是最後還是用 code 解決 07/06 15:57
→ Linux: 回 darktt大,我下載玩了,這比起我的強太多了啦! 07/06 15:58
→ Linux: 回 howdiun大,Only for Taipei 什麼意思,不懂@@? 07/06 15:58
推 fishead1116: Run實機也可以用QuickTime Player拍啊 07/06 16:28
→ Linux: 回 fishead1116大,真假的?! 我等等來試看看.. 07/06 19:36
推 KKFN: 我也從零開始,不過摸了快三個月了,現在連個鬼都沒做出來.. 07/06 21:10
推 asshole5566: 請問你是? 07/06 22:00
→ Linux: 回 KKFN大,你可以先模仿別人家的 App 當練習開始XD 07/07 01:58
推 sing10407: 厲害 完成度高 UI也很好看 07/07 17:56
推 otaku5566: 你好厲害>.< 我也摸一段時間摸不出啥鳥,有推薦的書嗎 07/14 02:26
→ otaku5566: 仔細想想,看書不如GOOGLE來的快... 07/14 02:43
推 wide3751: 學習快速的方式就是找一個實際案例去實作他, 厲害! 07/22 08:49
推 ryolue5053: UI超棒的 同樣是新手但輸你一大截 推!你超厲害~ 08/07 14:14
※ 編輯: Linux (118.166.44.212), 05/02/2019 14:14:33