自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

零基礎四個月做出一款APP

移動開發(fā)
OK,其實吧,我這個標題有點誤導性。我四個月前才開始學習Swift,在此之前,我沒怎么接觸過編程。我從沒有開發(fā)過任何平臺上的native app?,F(xiàn)在想起來,我當時可能根本不知道自己在干啥。

[[132507]]

OK,其實吧,我這個標題有點誤導性。我四個月前才開始學習Swift,在此之前,我沒怎么接觸過編程。我從沒有開發(fā)過任何平臺上的native app?,F(xiàn)在想起來,我當時可能根本不知道自己在干啥。

為了讓大家理解我“如何”做這件事,首先得講清楚我“為什么”做這件事。

回到過去

我一直愛玩電腦。在我差不多8歲的時候,我爸給我買了***臺電腦,沒玩幾下我就上癮了。那臺破電腦跑著DOS系統(tǒng),屏幕是CRT的渣屏,但是不管怎樣,在它的幫助下我能做很多我想做的事情。這特么是多牛逼的事兒??!當然了,我當時還是主要以玩游戲為主,但同時,這也讓我愛上了所有跟電腦相關的東西。我逐漸學習到了電腦的工作原理,把各個程序里所有能點的東西都點了個遍,順便還成為了朋友們口中的“技術通”。

時間快進至1999年。在1999年,我們用的是56K的撥號連接和ADSL連接。當互聯(lián)網(wǎng)在匈牙利開始興起的時候,我仍然保持著對電腦的熱愛。幾乎每天下午,你都可以在學校機房里找到正在狂看Geocities網(wǎng)頁的我。那是一個美好的時代,大家都基于開發(fā)網(wǎng)站,還會在上面放一個叫"dancing baby animgif"的小玩意,而我也想成為這個潮流的一部分。

[[132508]]

我開始學習HTML語言,并且創(chuàng)建了我人生***個網(wǎng)站。因為當時正值99年,所以我恰當?shù)貙⑺麨?ldquo;Zolee Site Millenium”。我那個網(wǎng)站在學校服務器上運行,還只能通過一個Frankensteinian URL 被訪問,就像這個一樣:www.kkt.piar.school.gov.hu/~hosszu2(注意,這里有一個漂亮的波浪線哦)。但不管怎么樣,我也是互聯(lián)網(wǎng)大軍的一員了,我感覺自己仿佛征服了Word Wide Web新大陸的一角。感覺爽爆了。

接下來的幾年里,我還是癡迷于玩游戲。我超愛反恐精英。這款游戲當時特別火,所以我總是有機會給自己所在的戰(zhàn)隊建網(wǎng)站。我喜歡設計和構建頁面,但一段時間后,我開始致力于視覺效果和易用性方面的事情。我不斷學習圖像和用戶體驗知識,還順帶著經(jīng)歷了***一波網(wǎng)頁開發(fā)風潮。

今天,我作為全職UI設計師在一家匈牙利機構供職。對于當下流行的Node、Angular或Bootstrap框架,我是一點兒經(jīng)驗都沒有。不過呢,這對我來說也不是什么大事。

但是,畢竟我還有些私人的設計項目,所以還是一直關注著HTML、CSS和JavaScript的相關動向。

GAget的創(chuàng)意來源

2011年,我的網(wǎng)站迎來了一次巨大的機遇。我的網(wǎng)頁設計得到了DevianArt的推薦。我每天都檢查新用戶,每發(fā)現(xiàn)多一些我都超激動。但我也真的很不爽。我不爽不是因為訪客數(shù)據(jù)的多少,而是我沒有簡便的方法去獲得訪客數(shù)據(jù)。我當時有兩種選擇。要么我就繼續(xù)跟Google Analytics死磕,要么我就得找一個簡單的應用來幫我做這件事。我認為這就是OS X Dashboard widgets誕生的目的,因此我開始考慮搞一個這樣的東西。

但現(xiàn)成的方案只有兩個,一個太簡陋,另一個又數(shù)據(jù)不夠。因此,作為一名設計師,我想出了一個我能想到的***設計方案,然后把這個方案放到了Dribbble上。

大家給我點了一些贊,正是這些贊讓我有動力繼續(xù)深入下去。我發(fā)現(xiàn)widgets基本都是用HTML和JavaScript寫的,于是我開始更認真地考慮開發(fā)這個東西。我想說的是,這可是我最熟悉的兩種語言啊,有木有!

幾天之內(nèi),我在Dashboard上面做好了產(chǎn)品原型。我將其命名為 GAget [讀音跟 gadget相同]——它是Google、Analytics和widget的縮寫。這名字有點傻,不過聊勝于無嘛。

兩周之后,也就是2011年8月,我發(fā)布了這個widget。

一段時間后,我停止了更新推薦GAget的書簽...

得到的反饋數(shù)量之多讓我有點吃驚:MacStories、SwissMiss以及數(shù)不清的博客都推薦了GAget。匈牙利電腦世界雜志中甚至還出現(xiàn)過我的名字。我必須全力以赴!

###下一步做什么?

現(xiàn)在,這個widget有了超過84000的下載量,每周都有成千上萬的人在用它。我甚至還跟一個朋友開發(fā)了一個iPhone版本的GAget。因此,當蘋果發(fā)布了Yosemite更新并且宣布不繼續(xù)支持Dashcode的時候,GAget的未來就變得不太明朗起來。

不過,塞翁失馬,焉知非福:蘋果向開發(fā)者開放了通知中心,而通知中心可以顯示widget。好!支持!威武!有希望了!或許我這個小widget的成功故事可以繼續(xù)了! 

我在Instagram上發(fā)布的關于全新設計的圖片

我開始讀關于Today Extensions(這是蘋果對widget的稱呼)的官方文檔??墒?,那上都是些本地化的Objective-C代碼。什么鬼啊哎!什么編譯器、內(nèi)存泄露、多線程進程……我可一點都不想弄這種事。對一個沒做過這些的人來說,這些詞完全就是天書。但我做出了決定,GAget必須成為一個本地化的widget才行!

***的問題是,我根本不知道從哪兒開始。

Objective-C的糾結

我買了一本用Objective-C進行iPhone開發(fā)的書可是看了幾頁就放棄了。老實說,對于一個只會點前端語言和PHP的人來說,Objective-C實在是太難了??纯聪旅孢@些代碼:

 

  1. @interface ReminderViewController() 
  2.  
  3. @property (nonatomic, weak) IBOutlet UIDatePicker *datePicker; 
  4.  
  5. @end 

 

interface和property這都是什么鬼?@和*在這兒擺著是幾個意思?好吧,老子唯一能看懂的就是end了!謝謝!

[[132509]]

 

更快的編程方式

那本書的教程對我來說完全無從下手。掙扎了幾個月,本地化的widget還是如海市蜃樓一般。

然后我突然想起來,Yosemite的發(fā)布的時候,Apple同時介紹了一種新的編程語言叫做Swift。Swift對每個人來說都是全新的,所以,很多大牛連碰還沒碰就開始琢磨著怎么搞個大新聞,把它批判一番,以長者的姿態(tài)告誡大家還是得學Objective-C。這一切都激起了我的好奇心:我把它下載下來,讀它的說明文檔。

那感覺竟如春風拂面般舒爽。代碼看上去變熟悉了,就跟復雜版的JavaScript差不多!我搞定了Xcode,然后開始看著教程依葫蘆畫瓢。

我的目標是開發(fā)一個OS X widget,但大多數(shù)教程的重點只是Swift語言本身或iPhone應用開發(fā),所以,“路漫漫其修遠兮,吾將上下而求索”啊。我仍有很多問題沒找到答案,例如:

-Widget如何與應用程序通信?(核心數(shù)據(jù)和app組)

-我能否使用鼠標懸?;?(不能)

-如何才能只打開widget中的一行?(自動布局,再加上一些手動的高度調(diào)整)

蘋果官方文檔里關于widget的那一頁讓我在github和Stack Overflow上找源碼,這讓我花了無數(shù)時間才找到答案。

我收集了一些我覺得非常有用的鏈接。如果你剛開始學iOS或OS X開發(fā)的話,它們也會有幫助。

我努力找到了所有我需要的東西,然后發(fā)現(xiàn)學習進展比我預想的還要快:Yosemite版本的GAget開始成形了。

4個月之前,我根本搞不懂MVC、多線程進程、app對象、view controller、核心數(shù)據(jù)這些名詞。不過,度過了無數(shù)個有教程和Stack Overflow陪伴的夜晚之后,我學會了Swift和OS X開發(fā)的基礎知識。

感謝參與測試的800位“壯士”,在他們的幫助下,測試非常成功。我的***款本地化應用,GAget,[現(xiàn)在可以在App Store下載了](http://gagetapp.com/osx/)。

除了一門新的編程語言之外,我還學到哪些?

我發(fā)現(xiàn),在Swift出來之前先開發(fā)私人項目所花時間之長是很可怕的。在私人項目中,你可以做**你**想做的事情而不用去管上司或者客戶。你可以隨便添加或刪除功能,并且按照自己的節(jié)奏工作。

Deadlines

但是,我發(fā)現(xiàn)**給自己一個***期限是激勵自己的絕好方式**。每個新年前夜,我都跟我妻子坐下來,寫一份下一年年我們想完成的事情的清單。這一次我列出來的是,我希望在1月末發(fā)布GAget的新版本:這是我的deadline。

雖然我最終還是比deadline晚了一個月(由于蘋果的審查進程和一些其他的項目),但我為了完成這一目標,整個1月都在傾盡全力地工作。在紙上寫下來要做的事情絕對是一個強大的動力。

學習周期

我還發(fā)現(xiàn)了學習新東西的三個階段:激情階段、彷徨階段和解決階段。

[[132510]]

1.激情階段:一開始都是在這個階段。你有一個新的構思并且開始學習新東西,所有事情看起來都很好,你開始設想下一步該做的事情。你很有動力,而且你的工作是你所熟悉和擅長的。但無論怎樣,***你總是會發(fā)現(xiàn)自己知識上存在著瓶頸。

2.彷徨階段:當你碰到***個實際問題的時候,你的激情和動力開始被消磨。你會感到茫然無助,不知所措。你甚至會感到絕望:會為了一個答案而對著Google發(fā)瘋。

3.解決階段:終于!那個煩死人的問題,你終于把答案給找著了。你發(fā)現(xiàn)自己正在以更快的速度進步,并且重拾了激情和動力。你返回到了***階段。

所以,當下一個循環(huán)開始的時候,你得記?。横葆咫A段可能會很長、很難熬,但終有一天你會乘舟破浪、到達彼岸。而尋找彼岸的過程本身,就是人生的樂趣所在。

責任編輯:林師授 來源: CocoaChina
相關推薦

2015-04-23 09:39:33

零基礎快速開發(fā)APP

2012-05-08 13:47:23

求職面試開發(fā)

2021-06-14 08:10:41

勒索組織Prometheus網(wǎng)絡安全

2009-02-13 09:31:26

MySpace中國CEOCTO

2009-12-02 08:50:41

Windows 7市場份額

2018-02-07 11:09:11

支付寶內(nèi)測AR

2015-03-24 12:48:28

編程編程設計師開發(fā)App

2020-11-13 11:01:33

工具人互聯(lián)網(wǎng)技術

2013-05-27 09:47:33

Java開發(fā)Java跨平臺

2016-08-18 11:43:02

CTO訓練營,技術管理

2016-08-17 12:04:58

CTO訓練營,技術管理

2025-05-09 08:55:00

2009-03-14 09:28:07

Symbian開源移動OS

2016-12-23 18:52:35

CTO訓練營

2015-04-29 10:11:58

iOS開發(fā)設計

2021-11-17 10:35:34

零信任安全網(wǎng)絡安全網(wǎng)絡攻擊

2017-09-04 13:51:29

Android

2014-03-13 14:27:51

2019-11-11 08:00:00

Doppler遠程監(jiān)測工具Linux

2021-10-29 16:28:03

零信任網(wǎng)絡安全網(wǎng)絡攻擊
點贊
收藏

51CTO技術棧公眾號