在開發產品過程中,不難發現研發和設計團隊時常因各自所處的角度不同,使得在溝通來回上花了不少時間。所以小弟整理些過去常在工作場景下遇到的一些資訊技術的專有名詞,化解那些雞同鴨講的無效溝通。
APP常見的三大類型
依技術劃分為
Native App(原生語言)、WebApp(網頁應用程式)以及Hybrid App( Native + Web )。目前市場上仍以Native App為主,優點不外乎整體使用者體驗佳,但耗時且花費的成本資源較多,以下主要針對這部分做更細節的介紹,關於各類型的優缺點可以看這篇(
哪一個是開發App最佳方案呢 ?)。
Android開發
安卓Android是基於Linux核心的作業系統,主要運行於智慧型手機、平板電腦和智能電視中。相較於蘋果的IOS作業系統較為開放開源,因此這也反映在其設計語言
Material design guidelines鼓勵創造性上。目前應用程式的開發仍以Java語言受到開發者歡迎,並以Eclipse等作為開發工具。當開發者完成程序的編寫測試後,須將其打包,打包後的程序檔名皆帶有.apk(其實就想像成在windows下的.exe安裝檔就好XD),最後發布到各應用市場提供給用戶下載就完成了,例如Google play或三星Galaxy Store等應用市場。
介面基本控件
其中包含按鈕Button、文本展示TextView、文本輸入EditView、圖片ImageView以及容器類的ListView和GridView等,所有控件都是基於View衍生擴展而來。當設計師提供UI視覺稿,開發者則基於這些基本控件做介面布局的調整和修改,所以有時候會發現與設計出來的不太一樣,因為研發哥哥用了Android系統默認的控件樣式。
IOS開發
與安卓Android作業系統不同,是屬於一個封閉的系統也就是只能在蘋果公司自家的產品和服務下使用,不像Android會授權給聯盟合作的廠商例如三星、華為、華碩、小米、OPPO等。目前蘋果公司針對系統開發採取比較嚴格的設計規範
Human interface guidelines並透過嚴謹的審查機制管理應用程式的上下架。而應用程式可使用Swift和Objective-C語言撰寫,並以Xcode等作為開發工具。
介面基本控件
與Android設計概念類似皆透過基本控件做修改,但名稱有所不同,其中包含按鈕UIButton、文本展示UILabel、文本輸入UItextField、圖片UIImageView以及容器類的UITableView和UICollectionView等。也因為平台間系統控件的定義導致人機互動上有所差異,例如IOS的控件UITableView默認預設刪除操作為向左滑動而Android的控件ListView默認預設為長按,這就是設計師們需要瞭解背後的發生原因 。
WEB開發
客戶端 / 伺服器端
一個完整的網站系統基本上是由許多網頁組合而成。當用戶通過瀏覽器進入網頁後,會發起一個請求(request),向伺服器要求一些資源(resource),內容資源可以是圖片、影片檔案等回傳給客戶端,因此兩邊的端點分別是客戶端(client-side)與伺服器端(server-side)。負責客戶端工作的就是前端,相反地,負責後端工作就是後端。以設計師的角色來說,大多就是跟前端工程師一起合作居多或是自己就是前端哈哈XD
HTML/CSS/Javascript
網頁主要由這三大前端語言組合而成。HTML負責定義了網頁的基本骨幹,CSS則扮演化妝師的角色,掌管外觀的點綴和裝飾效果,例如字體間距、大小、顏色、型體等,反之JavaScript 就負責管理網頁的內容和使用者間的互動行為,例如點擊按鈕的回饋行為或是輪播Banner之類。
Responsive web design
響應式網頁設計(RWD)是一種前端網頁技術做法。在過去開發網頁時須針對各種裝置進行不同的設計,對於設計師和前端開發人員就需要花許多時間成本做適配調整。因此夠過響應式的方式可以透過一組程式自動適配到各種大小不同的裝置,但缺點就是不適合太複雜的網頁內容,例如電商平台等客製化程度高的網站,而目前大多都是用於官方網站上。例如
宏碁ACER官網(快速判斷方法就是在不變網址下,將網頁做縮放,如果有自動適配就是囉!)。
Cookie/Session
主要解決用戶記憶的問題。當我們在瀏覽某些網站時,發現輸入帳號或密碼時,系統已經幫忙記住,或是在逛電商網站時,將商品加入購物車,下次登入仍然記住購物車內的商品資訊,這些就是分別仰賴Cookie和Session兩種技術。Cookie主要是將資訊儲存在客戶端例如瀏覽器,反之Session則儲存在服務器端,不會隨著裝置變換而消失。
URL網址
統一資源定位器(URL)就是一個在網路上唯一的地址,就像你要去別人家一樣,總會有一個明確的位置,例如https://www.google.com就是Google在網路上的獨有門牌號。當然,每個網站都會有自己的IP位址,就像你家的地理經緯度位置,但不會有人記得住,因此就會透過域名系統(DNS)負責翻譯解析。
Database資料庫
管理數據的電子化儲存空間,例如平常在購物網站,從登入會員到查詢訂單皆需要與資料庫關聯。用戶可針對數據資料進行新增、擷取、更新、刪除等操作。結構化查詢語言(SQL)是一種用來操作資料庫的程式語言,有固定的語法和結構,可以通過SQL撈取數據進行用戶行為分析。
API應用程式介面
客戶端和伺服器端的溝通橋樑,為了讓彼此溝通更加順暢,因此有一定的數據傳遞協議和規則。API的誕生也歸因於網際網路的盛行,避免每次開發一個新產品或服務都需要做對接,因此API就是扮演類似一個函式庫,當你需要使用時就呼叫你想要的函式庫,並給予相對應的參數,回傳數據結果。有點像是做UI介面時使用組件的概念,減少不必要的重複工作。或是FB和LINE提供登入的API提供開發者快速完成辨識用戶。
小結
小弟剛入行時,其實也是懵懵懂懂,但久而久之聽多了研發同事講述,就慢慢融會貫通,所以重要的是養成一種自學習慣,當沒聽過的技術名詞先記起來,再利用閒暇時間多瞭解背後的運作邏輯和原理,而不是死記死背。畢竟技術不可怕,可怕來自不懂它,沒有真正去了解。