Just My Life & My Work

Archive for the ‘工作’ Category

Fabric Answers 觀察 iOS 升級狀況

製作完App後,我會想知道使用者的狀況,除了可以獲得成就感之外,還能從回饋來改進App功能或流程。Fabric是一個集結各種常用工具的平台,包含搜集崩潰資料的Crashlytics和統計使用者軟硬體狀態的Answers

最近發觀察到兩個每天超過千人使用的App,才發現升級到iOS 10的用戶早已超過iOS 9,也才短短一個月半的時間呢!

fabric-answers-poya

這是來自美妝生活用品店的App

fabric-answers-nissan

這是來自酷炫汽車製造公司的App

 

可以參考我先前的文章:[APP] Fabric 統計平台[圖解] Fabric 活躍使用者 (Fabric Activity User)

這時候似乎可以忽略iOS 7啦XD~

 

[圖解] 工時與休假

最近新聞議題有工時、國定假日、一例一休,之前多少有聽聞各種角度的見解,可是我還是無法清楚描述,直到看到高人所做的圖解工時與休假,我才恍然大悟XD~

於是乎,我就來記錄一下我認為一定要知道的部分⋯⋯這篇文章只是挑選部分內容,若想要看詳細的過程內容,可以到文章最下方點擊進入原始文章喔!

首先是這張台灣勞工法定年總工時變遷史,可以輕易看出來2000年是變化最大的時候,回想那時候的我剛要升國中呢!開始有現在習以為常的週休二日

%e5%9c%96%e8%a7%a3-%e5%b7%a5%e6%99%82%e8%88%87%e4%bc%91%e5%81%87

(繼續閱讀…)

[圖解] 軟體工程師的一生 (Life of a Software Engineer)

I am Programmer,I have no life粉絲專頁總是會看到令人會心一笑的繪圖,今日看到這張圖解軟體工程師的一生 (Life of a Software Engineer)很有共鳴。

意思是每一年都在學習新的程式語言,也就是必須與時俱進,最後變成只會用文書處理軟體XD~也點像是實作派變成理論派!

從Junior Developer成長到Senior Developer,然後成為Product/Project Manager,似乎多數軟體工程師是這麼成長過來。

developer life of software engineer.jpg

技術不斷地成長演進,如果喜歡學習新技術知識的開發者沒有什麼問題,最關鍵的問題是要知道自己想要的是什麼,再去選擇要學習什麼樣的程式語言。

比如我想過著邊工作邊旅行的生活模式,我就選擇Mobile Developer(剛想到是雙關XD~),無論身在何時何地,都可以來工作順便旅行。

程式設計師遇到程式無法運作的20個反應

身為程式設計師多年的我,陸續遇到開發測試的各種奇異狀況,許多現象就如同這張表20個反應⋯⋯

程式員遇到程式無法運作時的反應
20. “That’s weird…"
19. “It’s never done that before."
18. “It worked yesterday."
17. “How is that possible?"
16. “It must be a hardware problem."
15. “What did you type in wrong to get it to crash?"
14. “There is something funky in your data."
13. “I haven’t touched that module in weeks!"
12. “You must have the wrong version."
11. “It’s just some unlucky coincidence."
10. “I can’t test everything!"
9. “THIS can’t be the source of THAT."
8. “It works, but it hasn’t been tested."
7. “Somebody must have changed my code."
6. “Did you check for a virus on your system?"
5. “Even though it doesn’t work, how does it feel?
4. “You can’t use that version on your system."
3. “Why do you want to do it that way?"
2. “Where were you when the program blew up?"

And the Number One reply by programmers when their programs don’t work:

1. “It works on my machine."

如果要改動的地方很多的話,那就改天吧XD~

參考: The Top 20 replies by programmers when their programs do not work

[iOS] 多人維護程式碼

程式寫久了,一定會面臨到要去維護他人寫的程式碼,尤其是在專案已經持續好幾年,每隔一段時間就要增加全新的功能,同時還要修改舊有的功能。

看到下面標頭檔截圖,就知道至少有幾個人來改過程式囉XD~

ios-%e5%a4%9a%e4%ba%ba%e7%b6%ad%e8%ad%b7%e7%a8%8b%e5%bc%8f%e7%a2%bc

光是看到命名方式就有三種風格:

  • 底線式
  • 駝峰式・型態在前,名稱在後
  • 駝峰式・名稱在前,型態在後

看來每個工程師素質參差不齊,照理說每種程式語言都有其既定的規則,而不是照著先前學的程式語言來寫新的語言。

我在專案中也看到有四個API版本,我目前要改動的部分就是第四版。我實在不太會想要動他人的「技術債」,儘管Xcode有提供各種Refactor的功能,但卻也不能保證全域式改名完全沒有問題。

在介面實作方面,一開始的工程師是使用StoryBoard,然後有工程師改用Xib。我到現在還是偏好使用Xib。

有時候我們在評斷他人時,同時就是在評斷自己,我們有過去的生澀,所以才會有進步。同樣都是在工作,然而我們可以選擇喜歡的工作來做。

我們總希望親手打造的成果,能讓使用它的人都有美好的體驗。祝大家都能樂在工作:)~

[iOS] 關於發版本這件事

已經有至少兩年的iOS App發版本經驗,一個人可以完成整個App再也不是難事,先不說介面與功能,來看從註冊(Enroll)開發(Develop)發佈(Distribute),會經歷哪些階段,Apple開發者文件中的這張流成圖,大致說明了一切!

Distribution Workflows.png

(繼續閱讀…)

引文

去做熱愛的工作

今日在李開復前輩臉書上看到這張圖:

love job.jpg

然後有這句註解:

工作最高境界:「你以為我在玩,其實我在工作;你以為我在工作,其實我在玩。

(繼續閱讀…)

[Swift] Xcode 8 beta 初體驗

回憶上篇文章Xcode 6 beta 初體驗已是兩年前的事,今日就來Xcode 8 beta 初體驗,試用一下這一版的Playground。

以下是以Quick Sort為例,Swift 3的語法真的有變異,有幾行code出現紅字,依照指示修改後就能執行。

於是要重新熟悉Swift囉:P~

Xcode 8 playground quick sort.png

想用Swift學習演算法的人,可以參考下列連結喔~

參考:/swift-algorithm-club

UTF-8 (8-bit Unicode Transformation Format)

每次開發iOS App,傳送資料到server時很常要編碼,會使用到UTF-8 (8-bit Unicode Transformation Format),可是我一直不曉得它的全名XD~這玩意兒好像只要會用就行!?

直到看見這張圖表,才知道UTF-8後來居上!看來它真的有過人之處,尤其在這行動裝置盛行年代~

UTF-8.png (繼續閱讀…)

[圖解] 專案測試項目

回想兩年前開始做這個給美國寶寶使用的App,從無到有開始打造,因為關鍵的功能尚不知如何實作,於是邊學習邊開發。主要的用途就是讓寶寶自己開影片來看,因為影片檔案很多且很大,需要有個後台來存放,使用者必須從網路下載影片回來App,此外還有進階使用功能,便是應用內購買來下載更多影片。

Baby專案檢查項目.png

回想當初製作時功能流程的複雜程度,App使用起來功能簡單又基本(使用者角度),然而開發起來就覺得實在好複雜(工程師角度),每個細節都要處理恰到好處,於是要花許多時間來測試與除錯。

像是下載影片、儲存影片、播放影片、加入我的最愛、應用內購買、限時播放與循環播放、播放清單、推薦親友、獎勵兌換、家長閘等等。不列出來我都忘記,列出來讓我又想起更多細節,乍看之下就只是個影片播放App,其中的奧秘都呈現在斷斷續續一年以來的開發過程之中。

可能因為自己還沒有小孩(快有了:P~),所以開發這個給寶寶使用的App,說實在的並沒有讓我很興奮,常會卡在某些功能流程上。

像是超大影片(例如100MB)要下載,就不能先全部載到記憶體,再轉存到硬碟,而是要每下載一小部分就從記憶體轉存到硬碟,以免超過App所能乘載的記憶體量而崩潰。

還有當時想要背景下載,但實際上只作前景下載,而且一次只能下載一個影片,所以使用者要開著螢幕乾等影片下載完畢,後來有加上背景下載(10分鐘內)。

此外,應用內購買必須模擬真實購買情況,好在Apple有區分開發環境(Development)與產品環境(Production),讓我可以無限次數購買,只是測試帳號購買產品後,沒有辦法回復到還沒購買的狀況,所以要不斷更改產品ID,或是增加測試帳號,來購買同一個商品。

我想這些學習理應感到很有成就感,只是我會想能不能沿用到未來的專案,當然多少都會對未來專案有助益,也希望開發過程中能有空閒來記錄下我的學習歷程,好讓未來的我或其他學子,能快速上手!

最近同事需要匯出開發文件,我在寶寶App也因應客戶需求,以Apple Doc的格式釋出,多虧一年半前我有記錄下來,直接貼連結給同事參考,節省不少學習時間。

最後的感想是,學海無涯,自己對新的事物也總是抱著好奇的心去認識與學習,然而時間有限之下,我必須選擇對我意義最多且價值最大的題目來實現。

標籤雲