android和iOS技術特點
android和iOS差異化對比
android技術特點:
1.安裝文件擴展名爲.apk
2.手機尺寸多樣話,適配工作量大
3.系統開源,可定製化系統
4.應用市場碎片化嚴重,多渠道
5.手機硬件跨度大,應用支持情況多樣
6.開發語言:java
iOS技術特點:
1.安裝文件擴展名爲.ipa
2.手機尺寸相對單一,適配工作適中
3.系統閉源,不可定製化系統
4.官方指定應用市場,單一渠道
5.手機硬件差異小,應用支持情況統一
6.開發語言:objective-c/swift
移動端基本三要素
頁面
控件,多個控件構成組建
操作,指操作手勢
頁面操作的實現原理
頁面操作事件:屏幕接收手勢操作,形成的觸發反應。事件可以被綁定到某個方法上
android和iOS基礎控件
UI控件:構成產品界面的基本元素,根據作用和操作的不同,區分爲不同種類
android基本控件:
按鈕:button
文本展示框:textview
文本輸入框:editview
圖片展示框:imageview
列表展示容器:listview
表格展示容器:gridview
iOS基本控件:
按鈕:UIbutton
文本展示框:UItextview
文本輸入框:UIeditview
圖片展示框:UIimageview
列表展示容器:UIlistview
表格展示容器:UIgridview
頁面控件規則
位置,大小,外觀
頁面佈局
頁面佈局:各種UI控件按照一定的佈局規則組合在一起,構成一個獨立的產品界面
佈局原理應用與產品設計:
1.產品設計時考慮每一個控件的邊界屬性(文本的最長展示範圍,不同屏幕的尺寸適配)
2.內容性控件需指明內容對其方式(文本展示框內容的對其方式,圖片拉伸方式)
如何選擇native和h5實現方式
native和h5的技術特點
native(原生)應用:通過各種移動平臺技術實現的客戶端產品,具備體驗好,功能豐富的特點
h5應用:通過網頁web技術實現的客戶點產皮,具備輕量化,易擴展的特點
native:
1.體驗順暢
2.更新需要發佈新的安裝包
3.針對不同端需單獨開發
h5
1.頁面需單獨加載
2.更新無需重新安裝
3.針對不同端只需開發一套
應用場景
native:使用頻率高;流程相對固化,變化較少;對體驗要求高
例如:登陸註冊,信息流,動畫
h5:運營模塊,內容變化頻率高,以內容和功能性爲主
例如:開屏啓動頁,頭部廣告條,運營活動說明頁
手機傳感器的應用
傳感器分類
傳感器是內置在手機中具有感知能力的硬件設備,可用來實現軟件功能
磁場傳感器:轉動手機可獲XYZ三個方向的磁場強度
加速度傳感器:可獲XYZ三個方向的加速度改變,計算擺動的幅度和次數來實現記步功能
三軸陀螺儀:計算XYZ三個方向的反轉角度,可識別手機的翻轉動作,比如翻轉來電靜音
指紋傳感器:分光學,射頻,電容三種,目前普遍採用電容指紋解鎖
距離傳感器:通過發射脈衝信號來計算返回時間從而得出距離,可用來實現近距離接聽電話息屏
光線傳感器:通常內置於手機正前方聽筒位置,識別光照強度調整屏幕亮度
手機是如何定位的
手機可通過GPS,基站,Wi-Fi實現定位功能
GPS通過連接衛星獲取參照位置具體經緯度,通常會做一些位移
基站都是固定的,手機獲取基站信號時可以定位位置
Wi-Fi通過獲取無線路由器的mac地址,實現位置經緯度獲取
客戶端數據緩存機制
什麼是緩存
緩存是一種臨時存儲機制,目的是用來提升數據加載過程中的速度和使用體驗
內存是一個公共區域,速度快,體驗好
緩存級別
緩存通常分爲一級緩存和二級緩存,一級緩存指手機中的內存,空間較小;二級緩存是指硬盤存儲,空間較大
緩存案例
微信朋友圈加載體驗:
首次加載時有個loading的過程——向服務端請求
列表狀態下,圖片加載小圖,點擊放大後加載高清圖——再次向服務端請求
下滑幾頁後再上劃,已加載的內容仍然保留——已存儲在內存中
劃到底部時有加載更多的操作——向服務端請求
在設計瀑布流時考慮到緩存機制,避免重複請求
客戶端消息推送
推送:服務端主動向客戶端發送消息的機制
客戶端獲取服務端消息的方式:
1.主動獲取數據:客戶端發起請求訪問服務端,服務端返回消息
2.被動接收數據:服務端主動向客戶端推送消息
推送頻率是重要考慮點
推送原理
實現消息推送的三種方式
1.主動輪詢:以定期請求的方式,向服務器發起數據請求,問它有沒有給我新消息,有就返回給你,沒有就下次再請求
2.建立長連接:相當於一個管道,不能掛斷,有新消息就會立刻推送過來,是目前主要的機制
3.心跳消息:和主動輪詢有點像,主動輪詢是定期請求,心跳消息是需要的時候發個消息
消息推送服務器
手機長時間開啓長連接或者輪詢機制,對資源消耗很大,不管是耗電量還是耗流量。爲了解決資源消耗,對推送消息更好的管理,建立了這種消息推送服務器,比如蘋果建立的APNs
APNS就是在服務端和客戶端中間再架設一種服務器,服務端發送消息的時候,都會把消息統一傳遞到APNS,這樣每個客戶端指建立一個長連接就可以了,客戶端收到消息後會判斷,這個消息是哪個應用的就給那個應用
消息推送服務器的優點
1.只需建立一個推送管道長連接
2.對資源消耗少
3.消息可統一管理
什麼是react native技術
什麼是react native
產品經理在工作中經常遇到一些情況
1.線上的文案出錯了,需要及時更改,但文案寫死在客戶端了,寫死在客戶端但意思是這個文案固定了,寫在了客戶端但代碼裏面,打包成了一個app,發不到了市場上,如果想更改的話,必須重新打包上傳,用戶更新成新版本之後,才能更新到一個最新的狀態
2.有個功能需要調整,如果是原生native開發的話,同樣需要重新寫代碼編譯打包發佈到應用市場上,客戶端需要更新到最新版本才能體驗最新的版本
基於以上痛點,Facebook退出了一種基於web技術開發native app的技術,在不用發佈前端版本的基礎上實現熱更新,熱更新是指,直接將最新的代碼推送到線上,線上就可以直接更新成最新的狀態,目前主流的是通過js實現app的動態更新
react native的優勢
主要體現在成本和效率上
1.app可以像網頁一樣更新,隨時發佈,不依賴於版本迭代
2.不區分程序員職能,不需要iOS和安卓,只要會web的技術,會使用react native框架就可以,一套應用程序統一開發
3.代碼服用度高,避免多端兼容
react native直接解析js進行頁面處理,相比於java和objective-c在執行效率上更加高效。類比於前者是熟食,可以直接使用,後者是生食,需加工處理後才能使用。
react native的應用場景
適合的場景:
1.資訊類產品,如信息流和瀑布流
2.動態運營類模塊較多的場景,如電商
不太適合的場景:
1.對首次加載速度要求較高的產品
2.工具類產品,對效率體驗要求較高的產品
對於產品經理而言,並不一定要深究它的技術框架是如何實現的,但是我們要了解它在使用場景上具體有哪些落地的應用,在產品決策的時候,什麼樣的場景,產品,工具適合用這種技術,這樣我們就會有一個選擇的範圍
微信小程序的技術特點和應用
微信小程序基本介紹
小程序是基於微信生態的一種程序開放平臺,基於微信環境,跨平臺支持
特點:
1.依託於微信運行無法單獨在手機操作系統環境內運行
2.可基於微信的關係鏈進行傳播,例如微信好友和微信羣
3.有自己的開發環境和發佈機制,並且有小程序獨特的開發語言
4.可調用微信原生基礎組建,例如地圖和多媒體支持
微信小程序技術特點
基於HTML,CSS,JS技術,衍生出的WXML,WXSS,WXS
WXML:是小程序框架設計的一套標籤語言,可用來構建小程序頁面結構
WXSS:是一套樣式語言,用於描述WXML的組建樣式
WXS:是小程序的一套腳本語言,結合WXML,可以構建出頁面的結構,並處理頁面交互
小程序無法主動向用戶推送消息
小程序與app
微信小程序使用場景
1.處理即時性任務
2.好友邀請(投票,地址,介紹)
3.輕量級服務(共享單車,打車)
app使用場景
1.處理複雜任務
2.注重體驗性和多任務處理
3.強營銷屬性類產品(電商,金融,生活服務)
早起屬於驗證階段的產品推薦使用小程序,輕量化,跨平臺,可利用微信生態傳播。