“讀到這篇文章的時候我自己已經(jīng)在學習編程的路上磕磕絆絆好一段時間了被廓,學習編程是一件痛并快樂著的事情翎承,我想這篇文章的作者的目標也許和我一樣蛉鹿,并不是想轉行做開發(fā)者取劫,但是喜歡這種親手用代碼創(chuàng)造出一款產(chǎn)品的樂趣,恩忌卤,在代碼的世界扫夜,每一個開發(fā)者,都是造物主驰徊◇源常”
原文鏈接:https://medium.com/sofa-blog/how-a-designer-built-and-shipped-an-ios-app-in-6-months-58258869b5fa
關于設計師是否需要去學習編程是一個持續(xù)的話題。我很高興能和大家聊一聊這個問題棍厂。
我認為通過學習編程能讓設計師從另外的角度去看待問題望侈。
你想通過學習代碼做到什么?是去得到一份工作勋桶,完善你的簡歷脱衙,進入一個設計的新領域,更好地和開發(fā)者溝通例驹?學習編寫代碼要看你的目的到底是什么捐韩。
就我來說,我想去發(fā)布一個App 產(chǎn)品鹃锈。
一點的故事背景
在2015年荤胁,我和兩個朋友一起完成了Sofa 這個項目的第一個版本。我是設計師屎债,其他兩個人一個是IOS開發(fā)工程師仅政,一個是前端開發(fā)工程師垢油。我們之前一起工作,現(xiàn)在也還在一起合作得很好圆丹。
在那個時候我不需要知道如何去編寫代碼滩愁。只要我將設計部分的工作做好就足夠了。在經(jīng)過了一年的開發(fā)和測試之后我們發(fā)布了1.0的版本辫封。
但是硝枉,緊接著出現(xiàn)了一些困難。Sofa對我們來說是一個工作之余的項目倦微,因為我們都有全職的工作妻味。我的兩個開發(fā)小伙伴由于工作太忙了導致沒有辦法繼續(xù)花很多時間在sofa上面。我們的產(chǎn)品陷入了停更的困境欣福,這對我來說十分痛苦责球。基于很多用戶的反饋拓劝,我本來有很多的想法要對產(chǎn)品進行迭代雏逾,但是現(xiàn)在我卻無能為力。這是讓我決定去學習編程的導火索凿将。
從Framer開始學起
和很多設計師一樣,我之前也略微有學習過一點的HTML,CSS以及JavaScript价脾。但是直到我開始使用Framer我才真的開始了解去這些代碼的基礎原理牧抵。?
在于設計師去學習如何編程這個事情上侨把,F(xiàn)ramer 是一個那么神奇的工具犀变。能親眼看著自己編寫的代碼實現(xiàn)自己想要的效果,讓我了解到到底這個編程的過程當中發(fā)生了什么秋柄。Framer教會了我基本的一些代碼知識比如說“變量”获枝、 “FOR循環(huán)”、“遍歷” 骇笔、還有函數(shù)省店。沒有什么花哨的技巧,都是些實用的知識笨触。
通過Framer我涉獵了更多的JavaScript的知識懦傍,但是我的心更向往著去開發(fā)原生的IOS App。?
向Swift前進
在swift語言還是誕生之前芦劣,我嘗試地去學過IOS開發(fā)粗俱,那時候的主流開發(fā)語言是Objective-C,它對于我實在是太難消化了虚吟。當Swift語言發(fā)布了寸认,我當時就認為签财,我應該能學會它。其實我也不是很確定偏塞,但是swift語言給了我一點點的自信唱蒸。
這是很艱難的部分。當時有很多學習IOS開發(fā)的資源烛愧,但是大多數(shù)都非常糟糕油宜,老師們總是會想當然地假定學生對很多基礎的概念十分了解。很多針對初學者的課程都是這個狀況怜姿。他們告訴你如何去實現(xiàn)“X”慎冤,但是從不告訴你你同同時需要先完成“A,B 和 C”沧卢。課程結束后反而覺得更加困惑和失落蚁堤。
我覺得我體驗過最好的學習IOS開發(fā)的資源是來自Meng To。 他的 Design+ Code 課程非常棒但狭。他自己本身是一個設計師披诗,他知道如何和設計師交流。這是讓我覺得他的課程比別人的好的一個重要原因立磁。純開發(fā)者去教沒有開發(fā)經(jīng)驗的人呈队,他們總會忘記剛開始的時候的我們最應該學什么。Meng 為設計師們解決了這個問題唱歧。?
Design + Code 教會了我如何在各個窗口間來回地傳遞數(shù)據(jù)宪摧,通過代碼改變APP的界面設計,以及如何使用故事板颅崩。再次說一下几于,很多其他的課程也教這些,只是他們沒有傳達得很清晰易懂沿后。
這個課程教會了我IOS開發(fā)的基礎知識沿彭。從那時候開始我就能夠探索和搭建一些產(chǎn)品框架。一個是Sofa2的早期框架尖滚,另外一個是針對IPAD的協(xié)作程序喉刘。我沒有徹底地完成他們中的任何一個,但是我在這個過程中學到了很多漆弄。
在六個月里開發(fā)和上線Sofa2.0
在2017年的夏天饱搏,我覺得我已經(jīng)等不及要去迭代Sofa了。等我的同伴的時間表上有時間置逻,那估計就是明年了推沸。那個時候我就決定自己開發(fā)Sofa的2.0版本。
我剛開始的時候我心里真的不是很有譜,但是我就是一股腦的扎進去了鬓催。我對于開發(fā)的基礎的了解肺素,足夠我一步一步慢慢向前推進了。?
在我開發(fā)的過程中宇驾,有兩個我一直使用的學習資源:Stack Overflow 和 YouTube 倍靡。是的,就是YouTube课舍。當你學習一些新的東西塌西,只是看書總是不夠的◇菸玻看看別人是如何解決那些你遇到的類似的問題總是非常有幫助的捡需。這就是YouTube特別棒的地方。當我碰到一些難點解決不了的時候筹淫,我總是在YouTube上搜索相關的視頻來看站辉。這里有一些YouTube賬號對于我的開發(fā)學習幫助非常大:
Mark Moeykens
Brian Advent
Let’s Build That App
Sean Allen
我真的非常感謝這些人分享了這么多這么棒的而且通俗易懂的內(nèi)容。?
從七月份到九月份损姜,我主要在做基礎的app功能的開發(fā)饰剥。然后從九月到十二月份,我變成一個測試人員摧阅,對產(chǎn)品的一些功能和體驗進行了不斷地測試汰蓉。
隨著時間一周一周的過去,我收獲了越來越多的自信棒卷」四酰總有一些棘手的問題很難處理,還有一些我特別怕的難題娇跟,比如說 核心數(shù)據(jù)岩齿,但是總的來說整個過程并不是很難太颤。
2017年12月6號的時候苞俘,我正式上線了Sofa2.0版本。嚴格的來說龄章,還沒用到6個月的時間吃谣,我的數(shù)學一直都不好。我很難形容自己的這種感覺——花了很長時間在做一樣東西然后把它和全世界分享做裙。有點嚇人岗憋,有些激動,總得來說——特別有意思锚贱。
在我自己開發(fā)的這段時間里仔戈,我的好朋友同時也是Sofa的成員,Oliver Pfeffe 一直默默地支持著我。他是Sofa app的第一版的開發(fā)者监徘,也是我合作過最棒的開發(fā)者晋修。當我告訴他我想要自己開發(fā)Sofa 2.0版本時,他非常地支持凰盔。當我陷入困境時墓卦,他總是給我指明正確的方向,而不是直接告訴我答案户敬。他讓我自己按自己的想法把代碼寫出來落剪,這樣我學到的更多。到開發(fā)階段的尾期尿庐,他幫我進行了代碼審查(我當時有一堆重構的活需要做)并且寫了一些庫幫我清理了從google book上獲取的數(shù)據(jù)忠怖。他在我開發(fā)2.0版本的過程中給了我很大的幫助业崖,雖然他可能不這么認為拟杉。?
我并不是一個人在戰(zhàn)斗
我很清楚的知道,我沒有辦法一個人完成這些所有的事情泞边。Framer教會我編寫代碼的基礎锐借,Meng To教會了我基本的IOS開發(fā)问麸,還有Stack Overflow和youtube 和Oli 教會了我更多IOS開發(fā)中更深層的東西。
不僅僅是那些教會了我如何編寫代碼的人钞翔,還有那些每天都支持著我的人严卖。我的妻子,我的家庭布轿,我的朋友哮笆,我的工作伙伴,我的老板等等汰扭。我非常幸運身邊有這么一群人稠肘,他們關心并且支持著我看似有些愚蠢的激情。這段時光我永遠也不會忘記萝毛。
你也能做到
不僅僅是設計師项阴,每個人都可以。如果你有一個你向往的目標笆包,雖然現(xiàn)在沒有足夠的技能环揽,不要擔心。現(xiàn)在這個時代庵佣,學習新東西的途經(jīng)和機會都遠遠超過歷史上任何一個時期歉胶。你唯一要做的就是把時間用在學習上。而且完成這件事情可能沒有你想象的那么困難巴粪。
文章中提到的學習網(wǎng)站和軟件介紹:
Framer
最新版本的Framer結合了圖形設計和代碼編程的功能通今,比之前純代碼的工作流程相比粥谬,降低了不少的學習成本。Framer官方網(wǎng)站上不僅有很多軟件使用視頻教程辫塌,而且還有基礎的代碼知識的講解帝嗡,學習資源是很豐富的,只是所有的學習資料都是英文的璃氢,需要有一定的英文基礎哟玷,當然,如果有一定的代碼基礎就更好了一也。Framer最厲害的地方巢寡,實現(xiàn)app的各種復雜動效,同時可以調(diào)用真實的數(shù)據(jù)實現(xiàn)最接近原生app的效果椰苟,用Framer做一款APP的demo是合適不過的了抑月。
網(wǎng)址:?https://framer.com/
Stack Overflow
著名的開發(fā)者技術問答社區(qū),做開發(fā)的沒有不知道的舆蝴,不管國內(nèi)國外的開發(fā)者都喜歡在這上面提問和幫別人解決問題
網(wǎng)址:https://stackoverflow.com/
Design + Code 網(wǎng)站
這篇文章的作者學習基礎的IOS開發(fā)知識的網(wǎng)站谦絮,內(nèi)容當然是英文的,不過從作者的介紹來看洁仗,這教程的制作人本身也是個設計師层皱,所以內(nèi)容對設計師來說應該是更淺顯易懂,而且整個網(wǎng)站的設計也很棒赠潦。
網(wǎng)址:https://designcode.io/
YouTube
YouTube是一個匯集了各種各樣視頻的網(wǎng)站叫胖,當然也包括很多教學視頻,全世界的很多技術達人都喜歡在YouTube上面發(fā)布自己的教程她奥,不管是編程還是設計瓮增,只要你想找,都能找到很好的學習資料哩俭,當然绷跑,因為大部分的視頻語言都是英文的,所以最好自己能有一些英文基礎凡资,不過就算你聽力不好也沒有關系砸捏,youtube有自動英文字幕的功能,對沒有字幕的英文視頻可以自動生成英文字幕讳苦,而且準確率相當高带膜,看字幕比純靠聽明顯簡單多了吩谦。
網(wǎng)址:www.youtube.com
作者介紹的幾個開發(fā)教程播主的地址:
Mark Moeykens?https://www.youtube.com/channel/UChH6WbyYeX0INJjrK2-6WSg
Brian Advent???https://www.youtube.com/channel/UCysEngjfeIYapEER9K8aikw
Let’s Build That App??https://www.youtube.com/channel/UCuP2vJ6kRutQBfRmdcI92mA
Sean Allen???https://www.youtube.com/channel/UCbTw29mcP12YlTt1EpUaVJw