APP開發

  • ,

    Swift初探

    條件編譯 這是 Swift 的條件編譯(Conditional Compilation)的一個示例,它允許你根據特定的條件選擇性地編譯代碼。在這段代碼中,它確定代碼是在 iOS 模擬器中運行還是在實際的 iOS 裝置上運行。 判斷變數是否存在 Swift的空值會是nil 什麼 是 Protocol 與 Delegate 1. Protocol 在 Swift 中,協議(Protocol)定義了一套規範或合約,但不提供具體的實現。任何型別(如 class、struct 或 enum)都可以遵循(implement)這些協議,並為協議中的要求提供具體的實現。 例如,我們可以定義一個表示可序列化對象的…

  • UI進化論-行動裝置使用者介面設計

    此文為閱讀此書的讀後心得:http://www.books.com.tw/products/0010471021 閱讀想法 這本書算是為專業的產品設計師所寫的,會講到許多有關於如何管理一個專業的設計團隊、制定開發流程、設計師頭銜討論,以及設計師如何訓練自己的藝術感等。並且也有說到一些相關電腦知識,例如掌上型行動設備的基礎知識之類。主要是以設計師的角度,去探討該如何去成為一個產品經理,然後開發一個產品。 也因為此書完全是以設計師角度去撰寫的,我是程式師,以想了解怎麼設計行動裝置的角度去看此書,很多地方會因身份角度不同而較無意義,不過或許對於設計師而言是一本很有意義的書。 重點筆記 使用者如何看待產品:這邊告訴我們使用者會怎樣看待我們的產品 合格的產品 優秀的產品 卓越的產品 如何將設計商品化 做市場需求的觀察:包括人口特徵、使用行為、利潤潛力、價值觀、需求、動機、購買因素、態度、產品使用場合、地理位置 使用者研究:目標族群的身份、使用場合、怎樣會讓使用者感覺這是個好商品、為使用者和產品間建立感情的聯繫(例如遊戲打寶,因為有感情因素,使用者會願意花時間去練功)、觀察使用者想買這個APP的目的,要能符合他們想像中的目的。 研究目標市場的文化內涵 使用者分析與研究 分析方法 當我們想要做一個行動介面的產品設計圖,除了美術的畫面及色彩設計外,對使用者的分析及研究也非常重要,這一篇是這本書裡我覺得最喜歡的,它提供我們怎麼去設計一個行動介面的動線的方式。在此介紹如下: 任務分析法:把特定的任務分成好幾個階段,先想好自己的APP想要提供給使用者那些功能,然後把特定的功能分解成多個步驟。例如像穿襯衫,可以分解為:雙手抓住襯衫領子>把襯衫披在肩上>右手穿進袖子裡,從袖口伸出>左手穿進袖子裡,從袖口伸出>把後襟拉平>把左右門襟對齊 這邊也列出一些心智模型工具:物理符號系統、諾爾曼模型、流程認知模型、SOAR模型、心智的社會模型、動力振盪理論模型、大腦協調學。 情境設定法:要包含角色和劇情。如在那邊、發生什麼事、怎樣的狀況下會想操作系統,不同情境下會需要不同的設計。例如會議中,靜音模式就很重要,或是在家裡,那就要有輕鬆、方便的感覺。 社會性研究法:研究一些社會的事件影響產品的事件。例如使用者的使用心得影響銷售的狀況、或是被影響等等。理解不同地域、文化背景、社會環境中的介面風格。 範例:MP3播放器 定義產品功能:明確定義出產品要有的功能有那些 繪製互動設計流程圖: 繪製介面原型:最簡單的版面元件位置配置 視覺設計:先設定APP主要要使用的色彩有那些(先配色),然後再繪製介面細節…

  • 套件管理工具CocoaPods介紹

    這是1/9的cocoaHeads裡,SuperBil分享的套件管理工具。 之前小岡也有和我推薦過這個工具,當時沒有去深入研究如何使用。 這次與會完後,便開始試著學習使用這個管理套件。(裝完後心得:天呀!實在太好用了!必裝~) 分享資料 投影片:做自己的可可豆夾 錄影檔:CocoaPods CocoaPods介紹 CocoaPods是一個管理套件的工具。 過去在開發app時,如果我們想要用一些第三方的Library,通常會要到GitHub下載專案到本地端,然後把它載入專案裡。這樣如果套件有更新時,都要手動更新,若是不同版本的ios要用到不同的library,又要手動去管理,會比較麻煩。 並且如果是直接把原始碼放到專案裡,會很容易和自己寫的code混在一起,管理和瀏覽都會較為困難。 CocoaPods就是用來管理這些第三方套件,使用CocoaPods之後,專案會變這樣:  安裝方法 這篇文章有非常詳細的方法:CocoaPods 比較要注意的是,我今天在安裝時,因為Podfile檔案所使用的編碼錯誤,會出現如下錯誤 後來我雖然把檔案改成utf-8,還是一直跑出同樣的錯誤。 後來才發現,如果有錯誤,要先把終端機關掉再打開,才會再一次執行。 接下來,如果要更新Podfile,到終端機打入 就可以了! 投影片另外有講到podSpec,如果有在cocoaPods裡面沒有包含的Library (現有的Library可到http://cocoapods.org/去輸入函式庫的名稱找有沒有現有的) 如果沒有的話(或者是自己製作的Library),就可以自己去寫spec 這邊有教學:Specs and the Specs…

  • AutoLayout介紹

    投影片分享 Auto layout in i os 7 from Claire Chang 過去的作法… 使⽤用frame和bounds去決定物件的位置和⼤小。 使用autosizing masks 設定當畫⾯面⼤大⼩小變動時,要固定 那些值(struts)。 在view的⼤大⼩小改變時,可以偵測 super view的⼤大⼩小改變去改變物 件的寬和⾼高的值(springs)。 AUTOLAYOUT和AUTORESIZING MASK的區別 Autoresizing Mask是AutoLayout的⼦子集。 AutoLayout更多的功能…

  • 在Windows下產生.p12及.mobileprovision

    在 Windows 產生憑證簽名要求 對 Windows 開發人員而言,最簡單的方法是取得 Mac 電腦上的 iPhone 開發人員憑證。不過,他們也可以在 Windows 電腦上取得憑證。首先,使用 OpenSSL 建立憑證簽名要求 (CSR 檔): 在 Windows 電腦上安裝 OpenSSL (移至http://www.openssl.org/related/binaries.html,或直接在此下載openssl-0.9.8k_X64)。 開啟 Windows 命令工作階段,然後使用 CD…

  • UITableView的小問題

    紀錄一下今天開發我的APP時遇到的小問題, 因為要使用UITableView,發現UITableView放在UIView裡時, 若要使用static cells是不能直接使用的。 當我們要用UIView,裡面有放一些自己的東西,再加上一個Static cells的UITableView時, 會發現雖然在storyboard裡能夠正常的顯示表格的樣子,如下圖 但是當執行出來卻無法顯示已設定好的static cells,而會顯示為一片空白,如下圖 查問Google大神後,在這邊有看到文章有相關的建議,也就是要我們不要實作下面這三個方法 不過,我檢查過後,我並沒有設定這三種方法,但是還是一樣無法正常顯示定義好的static cells, 最後這篇文章解決了我的疑問:How do I put a UITableView into a UIView 原來,我們不能夠直接在UITableView裡直接使用static cells, 如果必需在static cells的畫面裡加上其他元素,則應該要在該位置放入Container,然後Container連接至UITableViewController畫面,…

  • iOS6以上控制螢幕旋轉

    一般的設定方式 TabBarController設定方式 假使今天要控制所有畫面中,某些可支援旋轉,某些不行, 在有使用Navigation Controller和TabBarController的狀況時, 則需要這樣設定: 勾選支援畫面旋轉 在AppDelegate加上這段程式碼 在tabBarController裡加上 不支援旋轉的子畫面加上 要支援旋轉的子畫面加上 Navigation Controller設定方式 若要控制在Navigation Controller之下的單獨畫面是否支援旋轉,則需要在Controller裡加上這段

  • iOS app security - 分析和防範

    講者 :Hokila mail:hokila.jan@splashtop.com blog:josihokila.blogspot.com FB:fb.me/hokilaj 這是10/17分享的第一個講者,在分享有關app的安全上攻防的相關議題 因為這是我第一次參加cocoahead聚會,誤信了google map而迷路,遲了半小時入場,因此有部份內容沒有聽完整>”< 幸好後來找到Hokila很好心的預錄了當天的內容,在投影片最後一頁的QR code裡(有列在參考資料裡)。 ps:報名網頁的地址『台北市大安區敦化南路一段205號6樓600室』,打入google map會出現在忠孝復興站@@ 說到這,當天我到會場時,有另一個漂亮女生也遲到,我就和她打招呼,結果她問我:妳也是用google map嗎? 嗚哇~所以不只我一個人這樣阿!(握手 今天Hokila講的內容大致如下: iOS app 資料結構 在一個APP裡面大概會有幾個資料夾 。MyApp.app裡面會存放一些APP會用到的照片、XAB、貼圖(PVR)或素材PNG、JPG等檔案(裡面的值無法修改)。 。Documents是建議存放永久性資料的地方,我們可以在裡面創建、修改、刪除要永久存放的檔案,如DB工具、抓影片放裡面,好處是只要plist裡宣告可以file share的話,他會可以用iTune打開來。PS: 這個資料夾會被iCloud自動備份。 。Library則是較為複雜的資料夾裡面一般會有下面這些資料夾…

  • Marty Cagan談產品系列影片心得

    影片連結在此:  http://v.youku.com/v_show/id_XMzAyNTg0MDEy.html Marty Cagan是eBey前副總裁,本篇文章截錄部份影片重點,若有興趣者請直接看原始影片喔! (PS: 右邊有集數可以選擇) 產品的兩周理論 Marty Cagan認為一個產品負責人和設計者,應該在兩周之內,給使用者一個創意原型, 但大多數的產品經理不會喜歡這樣做, 原因很簡單,因為他們總是認為此時提出的原型會不夠完善、有缺陷, 會希望將產品做到位之後再公開他們的產品。 但是Marty Cagan提到,只有將產品的設計公開出來給使用者看,才能夠做到心裡有數, 很多設計者或產品負責人很容易愛上自己的產品, 但愛情是盲目的,這很容易讓設計者忽略實際情況和使用者的反饋。 因此他認為應該在兩周之內提出一個產品原型, 他推薦使用high fidelity prototypes、user prototypes、live-data prototypes, 若時間來不及,也可以單就提出產品的設計圖如Balsamiq Mockups之類的, 很多時候,這樣才能夠最快檢驗出產品是否易於被接受。…

  • XSpect簡介(一個AOP觀念實作的框架)

    講者資料:小岡 投影片:XSpect 專案github位置:在此 這是10/17在cocoaHead聚會裡由講者所分享的一個他自己所寫的framework 因為他是在今日議程的最後一個講者,有些部份講的較為快速、簡短 有很多投影片也跳過去未說,在當下聽時只能大略聽到一個概念。 較引起我注意的地方,是他所提到的AOP的觀念與應用 也因為對他所說的AOP的觀念以及相關應對、程式設計方式感到蠻有趣的 這部份在會議結束後也花蠻多時間在研究該講者的code以及相關概念的研究 這是講者對AOP的解釋: 如果我要敘述 AOP 在幹嘛,或是說他的目的的話。我會說 AOP 是在用另一種方式去封裝變化,達到原本 OOP 做不到的事。這個變化就是 crosscutting concerns。 crosscutting concerns 就是為了一個邏輯,而散布在四處的程式碼。 AOP 就是要把他們全部包裝在一起。 下面的是其他網頁對於AOP的解釋…


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。