如题所述
iosæµè¯åweb端æµè¯çåºå«:
ä¸ãè¯è¨
å端åç»ç«¯ä½ä¸ºé¢åç¨æ·ç«¯çç¨åºï¼æä¸ªå ±åç¹ç¹ï¼éè¦ä¾èµç¨æ·æºå¨çè¿è¡ç¯å¢ï¼æ以å¼åè¯è¨åºæ¬ä¸æ¯æ²¡æéæ©çï¼ä¸ååå°æ³ç¨ä»ä¹å°±ç¨ä»ä¹ï¼iOSåªè½ç¨object-cï¼å端åªè½javascriptï¼å½ç¶iOSè¿å¯ä»¥ç¨RubyMotionï¼å端è¿è½ç¨GWT/CoffieScriptï¼ä½ä¸æ¯ä¸»æµï¼ç¨ç人å¾å°ï¼çæ£ç¨äºä¹ä¼å¤åºå¾å¤éº»ç¦ãiOSè¿å¯ä»¥ç¨è¹ææ°åºçswiftè¯è¨ï¼åé¢å¯è½ç¨äºå代object-cï¼è¿å¤äºèµ·æ¥é¶æ®µï¼å ä¸è®¨è®ºã
objcåjsè¿ä¸¤è æ个æææç对æ¯ï¼åé/æ¹æ³å½åçé£æ ¼æ£å¥½ç¸åãè¹æä¸ç´é¼å¹ç¨æ·ä½éªï¼å代ç ä¹ä¸ä¾å¤ï¼ç¨åºå½åé½æ¯ç¨è±æå ¨ç§°å¹¶ä¸è¦å¤è¯¦ç»æå¤è¯¦ç»ï¼åæ±çåéåæ¹æ³åå°±è½ç¥éæ¯å¹²åçï¼ä¾å¦application:didFinishLaunchingWithOptions:ãèjså 为æ¯æ¬¡é½è¦ä»ç½ç»ä¸è½½ï¼è¦åæ±åå°ä»£ç ä½ç§¯ï¼æ以åéæ¹æ³åæ¯å°½éç¨ç¼©åï¼å®é ä¸æ代ç åç¼©å·¥å ·ï¼æ 论åéååå¤é¿æç»ä¸çº¿çæææ¯ä¸æ ·çï¼ä½å¤§å®¶ä¹é½ä¹ æ¯äºç¨ççå½åï¼ä¾å¦ä¸è¿°objcçapplication:didFinishLaunchingWithOptions:æ¹æ³å¨jséä¹ æ¯çå½åæ¯:$()ã
objcä¸jsé½æ¯å¨æè¯è¨ï¼ä½¿ç¨èµ·æ¥è¿è®åï¼ä½objcæ¯ç¼è¯åï¼é度快ï¼å¾å¤é误ä¹è½å¨ç¼è¯è¿ç¨ä¸è¢«åç°ï¼jsæ¯è§£éåï¼æ§è½ä¾èµäºè§£éå¼æï¼å³ä½¿å¨å¼ºå²çv8å¼æä¸æ§è½ä¹èµ¶ä¸ä¸ç¼è¯åè¯è¨ï¼è¯è¨å¤ªå¨æï¼åéå®å ¨æ²¡æç±»åï¼åèµ·æ¥ç½ï¼debugèµ·æ¥ç¨å¾®è´¹ç¹å²ãä¸ç´æè§js轻巧çµæ´»æ¾è¡ä¸ç¾å 满åç§å¥ææ·«å·§ï¼objcä¸è§ä¸ç©æ²¡c++ javaé£ä¹ä¸¥èä¹æ²¡æjsé£ä¹çµæ´»ã
äºã线ç¨
å端å¼åå ä¹ä¸éè¦çº¿ç¨è¿ä¸ªæ¦å¿µï¼æµè§å¨å®ç°ä¸é¡µé¢HTMLåCSS解æ渲æå¯è½ä¸jsä¸å¨åä¸ä¸ªçº¿ç¨ï¼ä½ææjs代ç åªæ§è¡å¨ä¸æ¡çº¿ç¨ä¸ï¼ä¸ä¼å¹¶åæ§è¡ï¼ä¹å°±ä¸éè¦èèåç§å¹¶åç¼ç¨çé®é¢ãå¨æ°çJSç¹æ§ä¸å¯ä»¥å建workerä»»å¡ï¼è¿æ ·çä»»å¡æ¯å¯ä»¥å¦èµ·ä¸æ¡çº¿ç¨å¹¶è¡æ§è¡çï¼ä½ç±äºå¹¶ä¸æ¯æææµè§å¨é½æ¯æï¼ä¸å线ç¨ä¼ éæ°æ®å个æ åå®çè¿ä¸ä¸æ ·ï¼ä½¿ç¨åºæ¯ä¹å°ï¼ä¼¼ä¹æ²¡æ大è§æ¨¡ç¨èµ·æ¥ã对äºæ°æ®åºæä½/åéç½ç»è¯·æ±è¿æ ·çä»»å¡æ¯å¨ä¸åäºjs代ç æ§è¡çº¿ç¨çï¼ä¸è¿è¿äºé½ç±æµè§å¨ç®¡çï¼å端æ éå ³å¿ä¹æ æ³å½±åè¿äºçº¿ç¨ï¼åªéæ¥æ¶äºä»¶åè°ï¼ä¸éè¦å¤çä»»ä½å¹¶åé®é¢ã
ç»ç«¯å¼åéè¦å¤§é使ç¨å¤çº¿ç¨ï¼iOSæä¸æ¡ä¸»çº¿ç¨ï¼UI渲æé½å¨è¿ä¸ªçº¿ç¨ï¼å ¶ä»èæ¶é¿çé»è¾æè æ°æ®åºIO/ç½ç»è¯·æ±é½éè¦èªå·±å¦å¼çº¿ç¨æ§è¡ï¼å¦åä¼å ç¨ä¸»çº¿ç¨çæ¶é´ï¼å¯¼è´çé¢æ æ³ååºç¨æ·äº¤äºäºä»¶ï¼æè 渲ææ ¢å¯¼è´æ»å¨å¡é¡¿ãç¨åºé»è¾åå¸å¨å¤ä¸ªçº¿ç¨éè·ï¼éè¦å¤ç好åç§ä»£ç 并åæ§è¡å¯è½å¸¦æ¥çæ°æ®ä¸ä¸è´/æ¶åºéä¹±ä¹ç±»çé®é¢ï¼å¹¶åä¹å¯¼è´æäºbugé¾ä»¥ææ¥ï¼ä¸ä¸çç¥å°±æåï¼éè¦éå½ç¨ä¸äºéå/éä¿è¯ç¨åºçæ§è¡é¡ºåºãiOSæä¾äºä¸å¥å¤çº¿ç¨ç®¡ççæ¹æ³GCDï¼å·²ç»æ线ç¨åéåå°è£ å¾é常ç®åæç¨åè½å¼ºå¤§ï¼æ¯å ¶ä»ç«¯æåå°æ¯å¥½å¾å¤äºï¼ä½è¿æ¯ä¼è±å¤§éå夫å¨å¤çå¤çº¿ç¨é®é¢ä¸ã
ä¸ãåå¨
ç»ç«¯å¼åéè¦å¤§éçæ°æ®åå¨é»è¾ï¼ææºAPPä¸åæµè§å¨ï¼ç¨æ·æå¼æµè§å¨å¿ å®æ¯è¿çç½ï¼ä½æå¼ä¸ä¸ªAPPæ¶å¾å¯è½æ¯ç¦»çº¿ï¼ä¹å¾å¯è½å¤äºç½ç»ç¶åµæå·®ç移å¨GPRSï¼æä»¥å¿ é¡»æä¹å请æ±åæ¥çæ°æ®ä¿å好ãä¿åæ°æ®ååéè¦ä¸æå¡ç«¯ææ°çæ°æ®åæ¥ï¼å¦æå ¨éåæ¥æ°æ®é太大ï¼èæµéé度ä¹æ ¢ï¼äºæ¯éè¦å¢éåæ¥ï¼éè¦ä¸æå¡ç«¯ä¸èµ·å¶å®å®ç°å¢éæ°æ®è¿åçæ¹æ¡ï¼éè¦å¤ç好客æ·ç«¯ä¸æå¡ç«¯æ°æ®ä¸è´æ§çé®é¢ãå½æ°æ®åå¨é大ç»æå¤ææ¶ï¼è¿éè¦å©ç¨å¥½æéçå ååcacheï¼ä¼ååç±»åå¨æ¥è¯¢æ§è½ã
å端å¨æ¡é¢ç«¯å¾å°éè¦åå¨ï¼é¤éæ¯one page appï¼ä¸åå¨èªç¶å°±ä¸éè¦æ°æ®æ´æ°çä¸ç³»åå·¥ä½ï¼æ°æ®é½æ¯ä»åå°ååºæ¼æ¥åç´æ¥æ¾ç¤ºå°é¡µé¢ä¸ï¼å³ä½¿åå¾®åæå¯ä»¥å¨é¡µé¢å ä¸æå è½½æ´å¤æ°æ®ï¼æ°æ®ä¹åªåå¨äºå åï¼ä¸ä¼æä¹ ååå¨ï¼å 为æ¡é¢ç«¯ç½é稳å®ï¼ä¸è®¡æµéï¼æææ°æ®å¯ä»¥ç´æ¥ä»å端æ¿åï¼å®¢æ·ç«¯æ²¡å¿ è¦ååä¸å¥åå¨ã移å¨ç«¯é£äºåå¾å¾ååçAPPçwebåºç¨å°±è·ç»ç«¯å¼åä¸æ ·äºï¼æ°æ®åæ ·ä¿åå°SQLiteï¼åå¨é»è¾ä»¥åè¦å¤ççé®é¢é½å·®ä¸å¤ã
åãæ¡æ¶
å¨ç¬¬ä¸æ¹æ¡æ¶ä¸webå端åiOSå¼åå®å ¨ç¸åï¼webåçå¼±å°åååå¼æ¾ï¼è®©å¤§é第ä¸æ¹æ¡æ¶åç±»åºå¯ä»¥æ½å±æ³èï¼èiOSåç强大åååå°éï¼å¯¼è´ç¬¬ä¸æ¹æ¡æ¶æ²¡æå¤å°çå空é´ã
æµè§å¨ä¸å¼å§åªä¸ºå 容åçç½é¡µè设计ï¼jsä¹åªæ¯è¿ä¸ªç½é¡µä¸è½å ç¹å°ç¹æçèæ¬è¯è¨ï¼å¨webåºç¨æ¶ä»£è·ä¸ä¸åå±ï¼éè¦å¾å¤ç¬¬ä¸æ¹åºåæ¡æ¶è¾ å©ï¼åå ä¸å端å¼åæ¯å®å ¨å¼æ¾çé¢åï¼å¯¼è´åºåæ¡æ¶ç¾è±é½æ¾å¤å¦çæ¯ï¼å¨åæå¤æ°åºçä½ç¨éä¸å¨å°è£ domæä½ï¼å¤§å®¶ä¸æéå¤é domæä½åºç¡åºçè½®åï¼å¨ä¸æ®µæ¶é´ç¾å®¶äºé¸£åç¬å°jQueryï¼å¨æ使ç¨åºçç½ç«ä¸90%以ä¸ä½¿ç¨jqï¼å ä¹æäºä¸ªæ ååºç¡åºãåæ大家已ç»ä¸åéå¤é è¿ä¸ªåºç¡åºçè½®åäºï¼å¤äºä¸äºä»£ç ç»ç»åå端æ¶æçæ¡æ¶ï¼ä¾å¦ä¸äºå¸®å©é¡¹ç®æ¨¡ååçæ¡æ¶require.jsï¼MVCæ¡æ¶backbone/angular.jsçã
iOSå¼åè¹æå·²æä¾äºå®æ´çå¼åæ¡æ¶cocoaï¼èè¿æ¡æ¶å¨æ¯ä¸ä»£ç³»ç»ä¸é½å¨å级ä¼ååæ·»ç å ç¦ï¼å¼å模å¼ä¹å·²ç»å®åï¼ç¬¬ä¸æ¹æ¡æ¶æ²¡æå¤å°çå空é´ï¼å¤§éæµè¡çå¼æºé¡¹ç®æ¯ä¸äºéç¨ç»ä»¶ååºï¼åç½ç»è¯·æ±åºAFNetworkingï¼æ°æ®åºæä½åºFMDBãèä¸äºå¤§çæ¡æ¶åbeeFramework/ReactiveCocoaè¾é¾æµè¡èµ·æ¥ã
äºãå ¼å®¹
å端å¼åéè¦å ¼å®¹å¤§ââéçæµè§å¨ï¼æ¡é¢çchromeï¼safariï¼ie6-ie10ï¼firefoxï¼ä»¥ååç§å¥å£³çè±¹360çæµè§å¨ï¼ç§»å¨ç«¯iOS/Androidåèªçæµè§å¨ï¼ä»¥åæ éçä¸åçå±å¹å°ºå¯¸ãçèµ·æ¥æºå¯æï¼å®é ä¸ä¹æ²¡é£ä¹é¾æï¼åªæ¯æ¿åºæ¥åå¬ä¸äººãæ¡é¢ç«¯chrome/safari以ååç§å¥å£³çæé模å¼ç¨çé½æ¯webkitï¼å·®å¼å¾å°ï¼firefoxä¹å¤§ä½éµä»æ åå®ç°ï¼ä¸webkitå·®å«ä¸å¤§ï¼æ§çie6/7å°±éè¦ç¹å«ç §é¡¾ï¼ä¸è¿å¾å¤ç½ç«é½ä¸æ¯æie6äºï¼ç§»å¨ç«¯æ´æ¯ä¸å®¶äº²ï¼å ¨æ¯webkitï¼é¤äºæ°ç¹æ§ä¸çæ¯æç¨åº¦ä¸ä¸ï¼å ¶ä»å·®å¼ä¸å¤§ã对äºä¸åçå±å¹å°ºå¯¸ï¼é«ç«¯ç¹çä¼ç¨ååºå¼å¸å±ï¼é对ä¸åå±å¹å°ºå¯¸èªéåºå°ä¸åå¸å±ï¼ä¸è¬ç¹çæ¡é¢ç«¯å®æ»å®½åº¦ï¼ç§»å¨ç«¯æ伸èªéåºå®½åº¦å°±æå®ã
ç»ç«¯å¼åä¹éè¦å ¼å®¹åç§ä¸åçç³»ç»çæ¬åææºå°ºå¯¸ï¼Androidä¸ç¨è¯´ï¼iOSä¹æ3.5/4/4.7/5.5/9.7è±å¯¸è¿äºå°ºå¯¸ï¼ä¸è¿å ¼å®¹èµ·æ¥è·webä¸æ ·æºå®¹æï¼å°±æ¯èªéåºå®½åº¦ï¼iOSçUIKitæè¿äºé½å¤ç好äºï¼è¿æautolayoutï¼sizeClassçé«çº§ç¹æ§å¯ç¨ï¼å¨å°ºå¯¸ä¸å¹¶ä¸ç¨è±å¤ªå¤å夫ãç³»ç»çæ¬ä¸iOS7为åæ°´å²ï¼iOS7ååçæ¬UIä¸å·®å¼æ¯è¾å¤§ï¼éè¦åä¸äºåå¤«å ¼å®¹ï¼ä¸è¿iOSç¨æ·æ´æ°æ¢ä»£å¾å¿«ï¼é¢è®¡åè¿ä¸ä¸¤å¹´iOS7以ä¸ç¨æ·å°±å¯ä»¥å¿½ç¥äºã
å ãæ§è½
ç»ç«¯åå端é½æ¯é¢åç¨æ·çï¼æ§è½ä¼åç®çé½æ¯å°½å¿«åç°å 容ï¼ä»¥å让ç¨åºå¨ç¨æ·æä½ä¸æµç è¿è¡ãç»ç«¯ä¸»è¦å ³æ³¨çæ¯åå¨/渲ææ§è½ãå½ä¸ä¸ªAPPåå¨æ°æ®é大ï¼æ°æ®å ³ç³»å¤ææ¶ï¼æ°æ®æ¥è¯¢å¾å®¹ææ为æ§è½ç¶é¢ï¼éè¦ä¸æä¼åæ°æ®ååçæçï¼è§åæ°æ®IO线ç¨ï¼è®¾è®¡å åcacheï¼å©ç¨å¥½ç»ç«¯è®¾å¤æéçå åï¼æ¸²æä¸é¿å éå¤æ¸²æï¼å°½å¯è½å¤ç¨è§å¾ï¼å¯»æ¾æé«æç渲ææ¹æ¡ã
åç«¯å ³æ³¨é¡µé¢å è½½é度ï¼ç±äºweb页é¢çç»æ/æ ·å¼/ç¨åº/èµæºå¾çé½æ¯å®æ¶è¯·æ±çï¼è¦è®©é¡µé¢æ´å¿«åç°å 容ï¼å°±è¦ä¼åè¿äºè¯·æ±ï¼è®©è¿äºèµæºä»¥æå¿«é度å è½½ä¸æ¥ï¼å æ¬å并å¾ç/å并代ç åå°è¯·æ±æ°ï¼å缩代ç ï¼å¹¶è¡è¯·æ±ï¼æ ¹æ®çæ¬å·ç¼å代ç 请æ±ï¼gzipå缩ï¼æ¨¡å/å¾çæå è½½çãæ¤å¤è·ç»ç«¯ä¸æ ·ä¹å ³æ³¨æ¸²ææ§è½ï¼éµä»ä¸äºè§åé¿å 页é¢reflowï¼é¿å 使ç¨CSSé´å½±è¿æ ·èæ§è½çç¹æï¼ç¨CSS3å¨ç»ä»£æ¿jsçã
ä¸ãç¼è¯
ç»ç«¯å¼åéè¦ç¼è¯çè¿ç¨ï¼æç¨åºç¼è¯ææºå¨è¯è¨ï¼åä¸åç§åºé¾æ¥åçæå¹³å°å¯¹åºçå¯æ§è¡æ件ï¼æåç±æä½ç³»ç»è°åº¦æ§è¡ãå¨iOSç»ç«¯å¼åä¸ç¼è¯åé¾æ¥çè§åè¹æå·²ç»å¨xcodeè¿ä¸ªå¼åå·¥å ·ä¸å°è£ 好ï¼ä¸è¬å¼åå¯ä»¥ä¸ç¨å ³å¿ï¼ä½ææ·±å±éæ±æ¶è¿æ¯éè¦è·ç¼è¯æå¾å¤äº¤éï¼ä¾å¦ç¨ç¼è¯å端Clangèªå®ä¹éæ代ç æ£æµè§åï¼åç¼è¯èæ¬åèªå¨åç¼è¯åæç»éæï¼æå çæéæåºï¼æ ¹æ®é¾æ¥åçå¯æ§è¡æ件çç»æä¼åAPPä½ç§¯çã
å端å¼åçç¨åºåä¸éè¦ç¼è¯è¿ç¨ï¼åªéè¦æ代ç æç»æµè§å¨ï¼æµè§å¨è¾¹è§£æ代ç è¾¹æ§è¡ãè½ç¶js/css代ç åå®æ éåä»»ä½äºæ æµè§å¨å°±å¯ä»¥è§£ææ§è¡ï¼ä½ä¸ºäºä¸é¢è¯´çæ§è½ä¼åï¼å端代ç ä¸çº¿åä¼å¯¹ææ代ç åèµæºæ件è¿è¡å¤çï¼è¿äºå¤çå æ¬ï¼å缩å并js/cssï¼å并css spriteå¾ï¼å¤ç模åä¾èµï¼å¤ç代ç èµæºçæ¬å·ï¼å¤çèµæºå®ä½çãè¿ä¸ªè¿ç¨å¾åä¼ ç»ç¨åºçç¼è¯ï¼æç»äººçç代ç ä¼åå¤çæç»æºå¨ççï¼å¹¶è§£å³ä¸äºä¾èµå ³ç³»ï¼å¯ä»¥ç®æ¯å端çç¼è¯è¿ç¨ãågrunt.js/fisè¿äºå·¥å ·å¯ä»¥å¸®å©å®æè¿ä¸ªç¼è¯è¿ç¨ï¼é常å端ç¼è¯è·ä¸çº¿é¨ç½²ç»åå¨ä¸èµ·ï¼ä½ä¸ºä¸çº¿ç³»ç»çä¸é¨åã
å «ãå®å ¨
å端åç»ç«¯çå®å ¨æ§é®é¢ä¸è½ç¶ä¸éè¦åå端èèå¾é£ä¹å¤ï¼ä½è¿æ¯æäºéè¦æ³¨æãå¨è¯·æ±çå®å ¨ä¸ï¼ç»ç«¯åå端é½ä¸æ ·ï¼ç¨æ·åå端åéç请æ±é½éè¦ç»è¿å±å±è·¯ç±ï¼ä¸ç¥éå¨åªé就被æªè·ç¯¡æ¹æåæ¾äºï¼äºæ¯éè¦åä¸äºæªæ½é²å¾¡è¿äºæ åµï¼æ常è§çå°±æ¯èº«ä»½éªè¯ï¼å¤æ¯éç¨ä¼è¿æçtokenå½¢å¼ä»£æ¿ç¨æ·åå¯ç ï¼é²æ¢è¢«æå åé»å®¢å¯ä»¥æ°¸è¿ç»éè¿ä¸ªè´¦å·ãæ°æ®å®å ¨è¦æ±é«çä¼ç¨å å¯ä¼ è¾ï¼æè 使ç¨httpsï¼å¦å¤è¿éè¦çæ åµå¤çä¸äºDNSå«æï¼è¿è¥å广åæ¤å ¥çé®é¢ã
å ¶ä»å®å ¨é®é¢ç»ç«¯å¾å°èèï¼å¨æªè¶ç±çiOSæºå¨ä¸ç³»ç»å·²ç»å¸®å¿ä¿è¯äºæ´ä¸ªAPPè¿è¡ç¯å¢çå®å ¨ï¼èå¨è¶ç±çæºå¨ä¸æ¶æç¨åºæ¥ærootæéå¯ä»¥åä»»ä½äºæ ï¼APPä¹é¾ä»¥é²èãå端æ¹é¢æµè§å¨çç¹æ§ä½¿å端å¼åæå 个å®å ¨éæ£ï¼ä¸æ¯web页é¢ä¸ä»»æä½ç½®é½å¯ä»¥å¨ææå ¥js代ç ï¼æµè§å¨ä¼æ åºå«å°æ§è¡è¿äºä»£ç ï¼äºæ¯èº«ä»½éªè¯ä¿¡æ¯é½ç»ä¸ä¿åå¨cookieéï¼ä¸æ¯é¡µé¢ä¸å¯ä»¥éæéè¿iframeåµå ¥å ¶ä»ç½ç«ç页é¢ãé æXSSãCSRFãcookieå«æè¿äºæ»å»æ段ï¼æ以å端å代ç æ¶é½éè¦èèè¿è¿äºå®å ¨é®é¢ï¼å好ç¸åºçé²èï¼æç®ååéè¦çé²èå°±æ¯å¯¹ææç¨æ·è¾å ¥è¾åºçå 容åå®æ´çè¿æ»¤ï¼é¿å 页é¢å 被åµå ¥æ¶æ代ç ã
ä¹ã交äº/å¼å
æå说ä¸å¯¹è¿ä¸¤ä¸ªé¢åå¨äº¤äºåå¼åä¸ç个人æ触ã以åå¨åwebå端æ¶ï¼æè§web让人æºäº¤äºåéäºåå¹´ï¼äº¤äºé½æ¯ç¡¬é¦é¦çç¹å»âåªä¸ä¸åºæ¥ç»æï¼æ»å¨æ¯ä¸æ ¼æ ¼å°å·æ°ï¼å¾å¤äººå½æ¶å¨é¼å¹html5å¯ä»¥ååºå¤ä¹ç«çæææ¶ï¼å®é ä¸FLASHå¨åå¹´åå°±å¯ä»¥ååºæ¥äºï¼è¿æ¯æç°ä»£çæµè§å¨æ´æµç ãiPhoneæµè¡åï¼äººæºäº¤äºç»äºæ¢å¤äºåºæçæ°´å¹³ï¼ä½éªä¸æ¯webæµç 太å¤ï¼æå°äº¤äº/æµç çå¨ç»/便æ·çæ»å¨æå¿/æ éå¶çå®ç°ï¼ä¸»æµç»äºæ¢å¤æè¶ è¶äºåå¹´åFlashçæ°´å¹³ã
ä½äººæºäº¤äºæåäºï¼å¼åæ¹å¼å´å¤§åéï¼webçå¼åæ¹å¼é常å è¿ï¼ç¨æ·ç¨å°çé½æ¯ææ°çæ¬ï¼åç°bugå¯ä»¥é©¬ä¸ä¸çº¿ç§ä¿®å¤ï¼ç¹å«éç¨äºäºèç½ç¯å¢ä¸çå¿«éè¿ä»£ï¼èç»ç«¯APPä¸è¡ï¼æå¼iPhoneçå®¡æ ¸ä¸è¯´ï¼Androidä¹æ æ³åå°ä¿è¯ç¨æ·ç¨çæ¯ææ°çç¨åºï¼ç¨çé½æ¯ä¼ ç»ç客æ·ç«¯æ´æ°çæ¹å¼ï¼bugçä¿®å¤çæ æ³åæ¶ç»å°ç¨æ·ï¼æ æ³ä¸å¤©ä¸çº¿å å次ï¼éè¦ç»´æ¤å¾å¤æ§çæ¬ï¼å¼åæ¹å¼åéåwebæ¶ä»£ä»¥åãè¿é½æ¯å 为移å¨ç½ç»ä¸ç¨³å®ä»¥åæµéæéé æçï¼ç§»å¨ç«¯æ æ³åæ¡é¢ç«¯æµè§å¨é£æ ·å®å ¨ä¾èµç½ç»ï¼æ以å¨ç§»å¨ç½ç»ç¨³å®æµéå è´¹ä¹åï¼å¼åæ¹å¼é½ä¸ä¼æå¤å¤§ååã
å¦å¤å¹¶ä¸ç好HTML5ï¼ç½ç»ä¸è¯´å®å¯ä»¥å代APP说äºä¸åå¹´ï¼å°ç°å¨ä¹æ²¡ä»ä¹æ绩ï¼æçä¸å°å®çä¼å¿ï¼åçAPPå¯ä»¥è·å¾æ´å¤çç³»ç»èµæºï¼æ´æµç ç人æºäº¤äºä½éªï¼HTML5å¨è¿æ¹é¢æ°¸è¿æ¯ä¸ä¸ï¼èå®å¨ç§»å¨ç«¯ç½ç»åæµéçéå¶ä¸ä¹æ æ³åæ¥webçå¼åä¼å¿ï¼æ以å®ä¸ä¼æ为主æµï¼åªéååä¸äºè½»éçå°ä¸è¥¿ã
ä¸ãè¯è¨
å端åç»ç«¯ä½ä¸ºé¢åç¨æ·ç«¯çç¨åºï¼æä¸ªå ±åç¹ç¹ï¼éè¦ä¾èµç¨æ·æºå¨çè¿è¡ç¯å¢ï¼æ以å¼åè¯è¨åºæ¬ä¸æ¯æ²¡æéæ©çï¼ä¸ååå°æ³ç¨ä»ä¹å°±ç¨ä»ä¹ï¼iOSåªè½ç¨object-cï¼å端åªè½javascriptï¼å½ç¶iOSè¿å¯ä»¥ç¨RubyMotionï¼å端è¿è½ç¨GWT/CoffieScriptï¼ä½ä¸æ¯ä¸»æµï¼ç¨ç人å¾å°ï¼çæ£ç¨äºä¹ä¼å¤åºå¾å¤éº»ç¦ãiOSè¿å¯ä»¥ç¨è¹ææ°åºçswiftè¯è¨ï¼åé¢å¯è½ç¨äºå代object-cï¼è¿å¤äºèµ·æ¥é¶æ®µï¼å ä¸è®¨è®ºã
objcåjsè¿ä¸¤è æ个æææç对æ¯ï¼åé/æ¹æ³å½åçé£æ ¼æ£å¥½ç¸åãè¹æä¸ç´é¼å¹ç¨æ·ä½éªï¼å代ç ä¹ä¸ä¾å¤ï¼ç¨åºå½åé½æ¯ç¨è±æå ¨ç§°å¹¶ä¸è¦å¤è¯¦ç»æå¤è¯¦ç»ï¼åæ±çåéåæ¹æ³åå°±è½ç¥éæ¯å¹²åçï¼ä¾å¦application:didFinishLaunchingWithOptions:ãèjså 为æ¯æ¬¡é½è¦ä»ç½ç»ä¸è½½ï¼è¦åæ±åå°ä»£ç ä½ç§¯ï¼æ以åéæ¹æ³åæ¯å°½éç¨ç¼©åï¼å®é ä¸æ代ç åç¼©å·¥å ·ï¼æ 论åéååå¤é¿æç»ä¸çº¿çæææ¯ä¸æ ·çï¼ä½å¤§å®¶ä¹é½ä¹ æ¯äºç¨ççå½åï¼ä¾å¦ä¸è¿°objcçapplication:didFinishLaunchingWithOptions:æ¹æ³å¨jséä¹ æ¯çå½åæ¯:$()ã
objcä¸jsé½æ¯å¨æè¯è¨ï¼ä½¿ç¨èµ·æ¥è¿è®åï¼ä½objcæ¯ç¼è¯åï¼é度快ï¼å¾å¤é误ä¹è½å¨ç¼è¯è¿ç¨ä¸è¢«åç°ï¼jsæ¯è§£éåï¼æ§è½ä¾èµäºè§£éå¼æï¼å³ä½¿å¨å¼ºå²çv8å¼æä¸æ§è½ä¹èµ¶ä¸ä¸ç¼è¯åè¯è¨ï¼è¯è¨å¤ªå¨æï¼åéå®å ¨æ²¡æç±»åï¼åèµ·æ¥ç½ï¼debugèµ·æ¥ç¨å¾®è´¹ç¹å²ãä¸ç´æè§js轻巧çµæ´»æ¾è¡ä¸ç¾å 满åç§å¥ææ·«å·§ï¼objcä¸è§ä¸ç©æ²¡c++ javaé£ä¹ä¸¥èä¹æ²¡æjsé£ä¹çµæ´»ã
äºã线ç¨
å端å¼åå ä¹ä¸éè¦çº¿ç¨è¿ä¸ªæ¦å¿µï¼æµè§å¨å®ç°ä¸é¡µé¢HTMLåCSS解æ渲æå¯è½ä¸jsä¸å¨åä¸ä¸ªçº¿ç¨ï¼ä½ææjs代ç åªæ§è¡å¨ä¸æ¡çº¿ç¨ä¸ï¼ä¸ä¼å¹¶åæ§è¡ï¼ä¹å°±ä¸éè¦èèåç§å¹¶åç¼ç¨çé®é¢ãå¨æ°çJSç¹æ§ä¸å¯ä»¥å建workerä»»å¡ï¼è¿æ ·çä»»å¡æ¯å¯ä»¥å¦èµ·ä¸æ¡çº¿ç¨å¹¶è¡æ§è¡çï¼ä½ç±äºå¹¶ä¸æ¯æææµè§å¨é½æ¯æï¼ä¸å线ç¨ä¼ éæ°æ®å个æ åå®çè¿ä¸ä¸æ ·ï¼ä½¿ç¨åºæ¯ä¹å°ï¼ä¼¼ä¹æ²¡æ大è§æ¨¡ç¨èµ·æ¥ã对äºæ°æ®åºæä½/åéç½ç»è¯·æ±è¿æ ·çä»»å¡æ¯å¨ä¸åäºjs代ç æ§è¡çº¿ç¨çï¼ä¸è¿è¿äºé½ç±æµè§å¨ç®¡çï¼å端æ éå ³å¿ä¹æ æ³å½±åè¿äºçº¿ç¨ï¼åªéæ¥æ¶äºä»¶åè°ï¼ä¸éè¦å¤çä»»ä½å¹¶åé®é¢ã
ç»ç«¯å¼åéè¦å¤§é使ç¨å¤çº¿ç¨ï¼iOSæä¸æ¡ä¸»çº¿ç¨ï¼UI渲æé½å¨è¿ä¸ªçº¿ç¨ï¼å ¶ä»èæ¶é¿çé»è¾æè æ°æ®åºIO/ç½ç»è¯·æ±é½éè¦èªå·±å¦å¼çº¿ç¨æ§è¡ï¼å¦åä¼å ç¨ä¸»çº¿ç¨çæ¶é´ï¼å¯¼è´çé¢æ æ³ååºç¨æ·äº¤äºäºä»¶ï¼æè 渲ææ ¢å¯¼è´æ»å¨å¡é¡¿ãç¨åºé»è¾åå¸å¨å¤ä¸ªçº¿ç¨éè·ï¼éè¦å¤ç好åç§ä»£ç 并åæ§è¡å¯è½å¸¦æ¥çæ°æ®ä¸ä¸è´/æ¶åºéä¹±ä¹ç±»çé®é¢ï¼å¹¶åä¹å¯¼è´æäºbugé¾ä»¥ææ¥ï¼ä¸ä¸çç¥å°±æåï¼éè¦éå½ç¨ä¸äºéå/éä¿è¯ç¨åºçæ§è¡é¡ºåºãiOSæä¾äºä¸å¥å¤çº¿ç¨ç®¡ççæ¹æ³GCDï¼å·²ç»æ线ç¨åéåå°è£ å¾é常ç®åæç¨åè½å¼ºå¤§ï¼æ¯å ¶ä»ç«¯æåå°æ¯å¥½å¾å¤äºï¼ä½è¿æ¯ä¼è±å¤§éå夫å¨å¤çå¤çº¿ç¨é®é¢ä¸ã
ä¸ãåå¨
ç»ç«¯å¼åéè¦å¤§éçæ°æ®åå¨é»è¾ï¼ææºAPPä¸åæµè§å¨ï¼ç¨æ·æå¼æµè§å¨å¿ å®æ¯è¿çç½ï¼ä½æå¼ä¸ä¸ªAPPæ¶å¾å¯è½æ¯ç¦»çº¿ï¼ä¹å¾å¯è½å¤äºç½ç»ç¶åµæå·®ç移å¨GPRSï¼æä»¥å¿ é¡»æä¹å请æ±åæ¥çæ°æ®ä¿å好ãä¿åæ°æ®ååéè¦ä¸æå¡ç«¯ææ°çæ°æ®åæ¥ï¼å¦æå ¨éåæ¥æ°æ®é太大ï¼èæµéé度ä¹æ ¢ï¼äºæ¯éè¦å¢éåæ¥ï¼éè¦ä¸æå¡ç«¯ä¸èµ·å¶å®å®ç°å¢éæ°æ®è¿åçæ¹æ¡ï¼éè¦å¤ç好客æ·ç«¯ä¸æå¡ç«¯æ°æ®ä¸è´æ§çé®é¢ãå½æ°æ®åå¨é大ç»æå¤ææ¶ï¼è¿éè¦å©ç¨å¥½æéçå ååcacheï¼ä¼ååç±»åå¨æ¥è¯¢æ§è½ã
å端å¨æ¡é¢ç«¯å¾å°éè¦åå¨ï¼é¤éæ¯one page appï¼ä¸åå¨èªç¶å°±ä¸éè¦æ°æ®æ´æ°çä¸ç³»åå·¥ä½ï¼æ°æ®é½æ¯ä»åå°ååºæ¼æ¥åç´æ¥æ¾ç¤ºå°é¡µé¢ä¸ï¼å³ä½¿åå¾®åæå¯ä»¥å¨é¡µé¢å ä¸æå è½½æ´å¤æ°æ®ï¼æ°æ®ä¹åªåå¨äºå åï¼ä¸ä¼æä¹ ååå¨ï¼å 为æ¡é¢ç«¯ç½é稳å®ï¼ä¸è®¡æµéï¼æææ°æ®å¯ä»¥ç´æ¥ä»å端æ¿åï¼å®¢æ·ç«¯æ²¡å¿ è¦ååä¸å¥åå¨ã移å¨ç«¯é£äºåå¾å¾ååçAPPçwebåºç¨å°±è·ç»ç«¯å¼åä¸æ ·äºï¼æ°æ®åæ ·ä¿åå°SQLiteï¼åå¨é»è¾ä»¥åè¦å¤ççé®é¢é½å·®ä¸å¤ã
åãæ¡æ¶
å¨ç¬¬ä¸æ¹æ¡æ¶ä¸webå端åiOSå¼åå®å ¨ç¸åï¼webåçå¼±å°åååå¼æ¾ï¼è®©å¤§é第ä¸æ¹æ¡æ¶åç±»åºå¯ä»¥æ½å±æ³èï¼èiOSåç强大åååå°éï¼å¯¼è´ç¬¬ä¸æ¹æ¡æ¶æ²¡æå¤å°çå空é´ã
æµè§å¨ä¸å¼å§åªä¸ºå 容åçç½é¡µè设计ï¼jsä¹åªæ¯è¿ä¸ªç½é¡µä¸è½å ç¹å°ç¹æçèæ¬è¯è¨ï¼å¨webåºç¨æ¶ä»£è·ä¸ä¸åå±ï¼éè¦å¾å¤ç¬¬ä¸æ¹åºåæ¡æ¶è¾ å©ï¼åå ä¸å端å¼åæ¯å®å ¨å¼æ¾çé¢åï¼å¯¼è´åºåæ¡æ¶ç¾è±é½æ¾å¤å¦çæ¯ï¼å¨åæå¤æ°åºçä½ç¨éä¸å¨å°è£ domæä½ï¼å¤§å®¶ä¸æéå¤é domæä½åºç¡åºçè½®åï¼å¨ä¸æ®µæ¶é´ç¾å®¶äºé¸£åç¬å°jQueryï¼å¨æ使ç¨åºçç½ç«ä¸90%以ä¸ä½¿ç¨jqï¼å ä¹æäºä¸ªæ ååºç¡åºãåæ大家已ç»ä¸åéå¤é è¿ä¸ªåºç¡åºçè½®åäºï¼å¤äºä¸äºä»£ç ç»ç»åå端æ¶æçæ¡æ¶ï¼ä¾å¦ä¸äºå¸®å©é¡¹ç®æ¨¡ååçæ¡æ¶require.jsï¼MVCæ¡æ¶backbone/angular.jsçã
iOSå¼åè¹æå·²æä¾äºå®æ´çå¼åæ¡æ¶cocoaï¼èè¿æ¡æ¶å¨æ¯ä¸ä»£ç³»ç»ä¸é½å¨å级ä¼ååæ·»ç å ç¦ï¼å¼å模å¼ä¹å·²ç»å®åï¼ç¬¬ä¸æ¹æ¡æ¶æ²¡æå¤å°çå空é´ï¼å¤§éæµè¡çå¼æºé¡¹ç®æ¯ä¸äºéç¨ç»ä»¶ååºï¼åç½ç»è¯·æ±åºAFNetworkingï¼æ°æ®åºæä½åºFMDBãèä¸äºå¤§çæ¡æ¶åbeeFramework/ReactiveCocoaè¾é¾æµè¡èµ·æ¥ã
äºãå ¼å®¹
å端å¼åéè¦å ¼å®¹å¤§ââéçæµè§å¨ï¼æ¡é¢çchromeï¼safariï¼ie6-ie10ï¼firefoxï¼ä»¥ååç§å¥å£³çè±¹360çæµè§å¨ï¼ç§»å¨ç«¯iOS/Androidåèªçæµè§å¨ï¼ä»¥åæ éçä¸åçå±å¹å°ºå¯¸ãçèµ·æ¥æºå¯æï¼å®é ä¸ä¹æ²¡é£ä¹é¾æï¼åªæ¯æ¿åºæ¥åå¬ä¸äººãæ¡é¢ç«¯chrome/safari以ååç§å¥å£³çæé模å¼ç¨çé½æ¯webkitï¼å·®å¼å¾å°ï¼firefoxä¹å¤§ä½éµä»æ åå®ç°ï¼ä¸webkitå·®å«ä¸å¤§ï¼æ§çie6/7å°±éè¦ç¹å«ç §é¡¾ï¼ä¸è¿å¾å¤ç½ç«é½ä¸æ¯æie6äºï¼ç§»å¨ç«¯æ´æ¯ä¸å®¶äº²ï¼å ¨æ¯webkitï¼é¤äºæ°ç¹æ§ä¸çæ¯æç¨åº¦ä¸ä¸ï¼å ¶ä»å·®å¼ä¸å¤§ã对äºä¸åçå±å¹å°ºå¯¸ï¼é«ç«¯ç¹çä¼ç¨ååºå¼å¸å±ï¼é对ä¸åå±å¹å°ºå¯¸èªéåºå°ä¸åå¸å±ï¼ä¸è¬ç¹çæ¡é¢ç«¯å®æ»å®½åº¦ï¼ç§»å¨ç«¯æ伸èªéåºå®½åº¦å°±æå®ã
ç»ç«¯å¼åä¹éè¦å ¼å®¹åç§ä¸åçç³»ç»çæ¬åææºå°ºå¯¸ï¼Androidä¸ç¨è¯´ï¼iOSä¹æ3.5/4/4.7/5.5/9.7è±å¯¸è¿äºå°ºå¯¸ï¼ä¸è¿å ¼å®¹èµ·æ¥è·webä¸æ ·æºå®¹æï¼å°±æ¯èªéåºå®½åº¦ï¼iOSçUIKitæè¿äºé½å¤ç好äºï¼è¿æautolayoutï¼sizeClassçé«çº§ç¹æ§å¯ç¨ï¼å¨å°ºå¯¸ä¸å¹¶ä¸ç¨è±å¤ªå¤å夫ãç³»ç»çæ¬ä¸iOS7为åæ°´å²ï¼iOS7ååçæ¬UIä¸å·®å¼æ¯è¾å¤§ï¼éè¦åä¸äºåå¤«å ¼å®¹ï¼ä¸è¿iOSç¨æ·æ´æ°æ¢ä»£å¾å¿«ï¼é¢è®¡åè¿ä¸ä¸¤å¹´iOS7以ä¸ç¨æ·å°±å¯ä»¥å¿½ç¥äºã
å ãæ§è½
ç»ç«¯åå端é½æ¯é¢åç¨æ·çï¼æ§è½ä¼åç®çé½æ¯å°½å¿«åç°å 容ï¼ä»¥å让ç¨åºå¨ç¨æ·æä½ä¸æµç è¿è¡ãç»ç«¯ä¸»è¦å ³æ³¨çæ¯åå¨/渲ææ§è½ãå½ä¸ä¸ªAPPåå¨æ°æ®é大ï¼æ°æ®å ³ç³»å¤ææ¶ï¼æ°æ®æ¥è¯¢å¾å®¹ææ为æ§è½ç¶é¢ï¼éè¦ä¸æä¼åæ°æ®ååçæçï¼è§åæ°æ®IO线ç¨ï¼è®¾è®¡å åcacheï¼å©ç¨å¥½ç»ç«¯è®¾å¤æéçå åï¼æ¸²æä¸é¿å éå¤æ¸²æï¼å°½å¯è½å¤ç¨è§å¾ï¼å¯»æ¾æé«æç渲ææ¹æ¡ã
åç«¯å ³æ³¨é¡µé¢å è½½é度ï¼ç±äºweb页é¢çç»æ/æ ·å¼/ç¨åº/èµæºå¾çé½æ¯å®æ¶è¯·æ±çï¼è¦è®©é¡µé¢æ´å¿«åç°å 容ï¼å°±è¦ä¼åè¿äºè¯·æ±ï¼è®©è¿äºèµæºä»¥æå¿«é度å è½½ä¸æ¥ï¼å æ¬å并å¾ç/å并代ç åå°è¯·æ±æ°ï¼å缩代ç ï¼å¹¶è¡è¯·æ±ï¼æ ¹æ®çæ¬å·ç¼å代ç 请æ±ï¼gzipå缩ï¼æ¨¡å/å¾çæå è½½çãæ¤å¤è·ç»ç«¯ä¸æ ·ä¹å ³æ³¨æ¸²ææ§è½ï¼éµä»ä¸äºè§åé¿å 页é¢reflowï¼é¿å 使ç¨CSSé´å½±è¿æ ·èæ§è½çç¹æï¼ç¨CSS3å¨ç»ä»£æ¿jsçã
ä¸ãç¼è¯
ç»ç«¯å¼åéè¦ç¼è¯çè¿ç¨ï¼æç¨åºç¼è¯ææºå¨è¯è¨ï¼åä¸åç§åºé¾æ¥åçæå¹³å°å¯¹åºçå¯æ§è¡æ件ï¼æåç±æä½ç³»ç»è°åº¦æ§è¡ãå¨iOSç»ç«¯å¼åä¸ç¼è¯åé¾æ¥çè§åè¹æå·²ç»å¨xcodeè¿ä¸ªå¼åå·¥å ·ä¸å°è£ 好ï¼ä¸è¬å¼åå¯ä»¥ä¸ç¨å ³å¿ï¼ä½ææ·±å±éæ±æ¶è¿æ¯éè¦è·ç¼è¯æå¾å¤äº¤éï¼ä¾å¦ç¨ç¼è¯å端Clangèªå®ä¹éæ代ç æ£æµè§åï¼åç¼è¯èæ¬åèªå¨åç¼è¯åæç»éæï¼æå çæéæåºï¼æ ¹æ®é¾æ¥åçå¯æ§è¡æ件çç»æä¼åAPPä½ç§¯çã
å端å¼åçç¨åºåä¸éè¦ç¼è¯è¿ç¨ï¼åªéè¦æ代ç æç»æµè§å¨ï¼æµè§å¨è¾¹è§£æ代ç è¾¹æ§è¡ãè½ç¶js/css代ç åå®æ éåä»»ä½äºæ æµè§å¨å°±å¯ä»¥è§£ææ§è¡ï¼ä½ä¸ºäºä¸é¢è¯´çæ§è½ä¼åï¼å端代ç ä¸çº¿åä¼å¯¹ææ代ç åèµæºæ件è¿è¡å¤çï¼è¿äºå¤çå æ¬ï¼å缩å并js/cssï¼å并css spriteå¾ï¼å¤ç模åä¾èµï¼å¤ç代ç èµæºçæ¬å·ï¼å¤çèµæºå®ä½çãè¿ä¸ªè¿ç¨å¾åä¼ ç»ç¨åºçç¼è¯ï¼æç»äººçç代ç ä¼åå¤çæç»æºå¨ççï¼å¹¶è§£å³ä¸äºä¾èµå ³ç³»ï¼å¯ä»¥ç®æ¯å端çç¼è¯è¿ç¨ãågrunt.js/fisè¿äºå·¥å ·å¯ä»¥å¸®å©å®æè¿ä¸ªç¼è¯è¿ç¨ï¼é常å端ç¼è¯è·ä¸çº¿é¨ç½²ç»åå¨ä¸èµ·ï¼ä½ä¸ºä¸çº¿ç³»ç»çä¸é¨åã
å «ãå®å ¨
å端åç»ç«¯çå®å ¨æ§é®é¢ä¸è½ç¶ä¸éè¦åå端èèå¾é£ä¹å¤ï¼ä½è¿æ¯æäºéè¦æ³¨æãå¨è¯·æ±çå®å ¨ä¸ï¼ç»ç«¯åå端é½ä¸æ ·ï¼ç¨æ·åå端åéç请æ±é½éè¦ç»è¿å±å±è·¯ç±ï¼ä¸ç¥éå¨åªé就被æªè·ç¯¡æ¹æåæ¾äºï¼äºæ¯éè¦åä¸äºæªæ½é²å¾¡è¿äºæ åµï¼æ常è§çå°±æ¯èº«ä»½éªè¯ï¼å¤æ¯éç¨ä¼è¿æçtokenå½¢å¼ä»£æ¿ç¨æ·åå¯ç ï¼é²æ¢è¢«æå åé»å®¢å¯ä»¥æ°¸è¿ç»éè¿ä¸ªè´¦å·ãæ°æ®å®å ¨è¦æ±é«çä¼ç¨å å¯ä¼ è¾ï¼æè 使ç¨httpsï¼å¦å¤è¿éè¦çæ åµå¤çä¸äºDNSå«æï¼è¿è¥å广åæ¤å ¥çé®é¢ã
å ¶ä»å®å ¨é®é¢ç»ç«¯å¾å°èèï¼å¨æªè¶ç±çiOSæºå¨ä¸ç³»ç»å·²ç»å¸®å¿ä¿è¯äºæ´ä¸ªAPPè¿è¡ç¯å¢çå®å ¨ï¼èå¨è¶ç±çæºå¨ä¸æ¶æç¨åºæ¥ærootæéå¯ä»¥åä»»ä½äºæ ï¼APPä¹é¾ä»¥é²èãå端æ¹é¢æµè§å¨çç¹æ§ä½¿å端å¼åæå 个å®å ¨éæ£ï¼ä¸æ¯web页é¢ä¸ä»»æä½ç½®é½å¯ä»¥å¨ææå ¥js代ç ï¼æµè§å¨ä¼æ åºå«å°æ§è¡è¿äºä»£ç ï¼äºæ¯èº«ä»½éªè¯ä¿¡æ¯é½ç»ä¸ä¿åå¨cookieéï¼ä¸æ¯é¡µé¢ä¸å¯ä»¥éæéè¿iframeåµå ¥å ¶ä»ç½ç«ç页é¢ãé æXSSãCSRFãcookieå«æè¿äºæ»å»æ段ï¼æ以å端å代ç æ¶é½éè¦èèè¿è¿äºå®å ¨é®é¢ï¼å好ç¸åºçé²èï¼æç®ååéè¦çé²èå°±æ¯å¯¹ææç¨æ·è¾å ¥è¾åºçå 容åå®æ´çè¿æ»¤ï¼é¿å 页é¢å 被åµå ¥æ¶æ代ç ã
ä¹ã交äº/å¼å
æå说ä¸å¯¹è¿ä¸¤ä¸ªé¢åå¨äº¤äºåå¼åä¸ç个人æ触ã以åå¨åwebå端æ¶ï¼æè§web让人æºäº¤äºåéäºåå¹´ï¼äº¤äºé½æ¯ç¡¬é¦é¦çç¹å»âåªä¸ä¸åºæ¥ç»æï¼æ»å¨æ¯ä¸æ ¼æ ¼å°å·æ°ï¼å¾å¤äººå½æ¶å¨é¼å¹html5å¯ä»¥ååºå¤ä¹ç«çæææ¶ï¼å®é ä¸FLASHå¨åå¹´åå°±å¯ä»¥ååºæ¥äºï¼è¿æ¯æç°ä»£çæµè§å¨æ´æµç ãiPhoneæµè¡åï¼äººæºäº¤äºç»äºæ¢å¤äºåºæçæ°´å¹³ï¼ä½éªä¸æ¯webæµç 太å¤ï¼æå°äº¤äº/æµç çå¨ç»/便æ·çæ»å¨æå¿/æ éå¶çå®ç°ï¼ä¸»æµç»äºæ¢å¤æè¶ è¶äºåå¹´åFlashçæ°´å¹³ã
ä½äººæºäº¤äºæåäºï¼å¼åæ¹å¼å´å¤§åéï¼webçå¼åæ¹å¼é常å è¿ï¼ç¨æ·ç¨å°çé½æ¯ææ°çæ¬ï¼åç°bugå¯ä»¥é©¬ä¸ä¸çº¿ç§ä¿®å¤ï¼ç¹å«éç¨äºäºèç½ç¯å¢ä¸çå¿«éè¿ä»£ï¼èç»ç«¯APPä¸è¡ï¼æå¼iPhoneçå®¡æ ¸ä¸è¯´ï¼Androidä¹æ æ³åå°ä¿è¯ç¨æ·ç¨çæ¯ææ°çç¨åºï¼ç¨çé½æ¯ä¼ ç»ç客æ·ç«¯æ´æ°çæ¹å¼ï¼bugçä¿®å¤çæ æ³åæ¶ç»å°ç¨æ·ï¼æ æ³ä¸å¤©ä¸çº¿å å次ï¼éè¦ç»´æ¤å¾å¤æ§çæ¬ï¼å¼åæ¹å¼åéåwebæ¶ä»£ä»¥åãè¿é½æ¯å 为移å¨ç½ç»ä¸ç¨³å®ä»¥åæµéæéé æçï¼ç§»å¨ç«¯æ æ³åæ¡é¢ç«¯æµè§å¨é£æ ·å®å ¨ä¾èµç½ç»ï¼æ以å¨ç§»å¨ç½ç»ç¨³å®æµéå è´¹ä¹åï¼å¼åæ¹å¼é½ä¸ä¼æå¤å¤§ååã
å¦å¤å¹¶ä¸ç好HTML5ï¼ç½ç»ä¸è¯´å®å¯ä»¥å代APP说äºä¸åå¹´ï¼å°ç°å¨ä¹æ²¡ä»ä¹æ绩ï¼æçä¸å°å®çä¼å¿ï¼åçAPPå¯ä»¥è·å¾æ´å¤çç³»ç»èµæºï¼æ´æµç ç人æºäº¤äºä½éªï¼HTML5å¨è¿æ¹é¢æ°¸è¿æ¯ä¸ä¸ï¼èå®å¨ç§»å¨ç«¯ç½ç»åæµéçéå¶ä¸ä¹æ æ³åæ¥webçå¼åä¼å¿ï¼æ以å®ä¸ä¼æ为主æµï¼åªéååä¸äºè½»éçå°ä¸è¥¿ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-11-02
近年来,手机app的热起,越来越多的公司企业也引入或者投资到android和ios的app行业当中,继而产生手机软件测试的蓬勃发展。而作为基础行业的web测试,和手机app测试又有什么的相同点与不同之处呢?
1、相同点
不管是传统行业的web测试,还是新兴的手机app测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中。
1)设计测试用例时,依然都是依据边界值分析法、等价类划分等;
2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用;
3)需要检查界面的布局、风格和按钮等是否简洁美观、是否统一等;
4)测试页面载入和翻页的速度、登录时长、内存是否溢出等;
5)测试应用系统的稳定性等。
2、不同点
相对于web测试,手机软件测试,除了要考虑基本的功能测试、性能等,还要考虑手机本身固有的属性特征。所以对比web测试和手机测试,手机测试过程中还需要注意如下几个方面特性:
1)手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响,所以app测试第一个要考虑的属性特征是:中断测试。
中断测试有人为中断、新任务中断以及意外中断等几种情况,主要从以下几个方面进行验证:
a.来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断
b.短信中断:接收短信、查看短信
c.其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)
2)手机用户对app产品的安装卸载操作:从上一个版本/上两个版本直接升级到最新版本。
全新安装新版本
新版本覆盖旧版本安装
卸载旧版本,安装新版本
卸载新版本,安装新版本
3)web自动化测试使用的工具较常用的是QTP,而android手机自动化测试工具比较常用的是monkey、monkeyrunner。本回答被提问者和网友采纳
1、相同点
不管是传统行业的web测试,还是新兴的手机app测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中。
1)设计测试用例时,依然都是依据边界值分析法、等价类划分等;
2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用;
3)需要检查界面的布局、风格和按钮等是否简洁美观、是否统一等;
4)测试页面载入和翻页的速度、登录时长、内存是否溢出等;
5)测试应用系统的稳定性等。
2、不同点
相对于web测试,手机软件测试,除了要考虑基本的功能测试、性能等,还要考虑手机本身固有的属性特征。所以对比web测试和手机测试,手机测试过程中还需要注意如下几个方面特性:
1)手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响,所以app测试第一个要考虑的属性特征是:中断测试。
中断测试有人为中断、新任务中断以及意外中断等几种情况,主要从以下几个方面进行验证:
a.来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断
b.短信中断:接收短信、查看短信
c.其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)
2)手机用户对app产品的安装卸载操作:从上一个版本/上两个版本直接升级到最新版本。
全新安装新版本
新版本覆盖旧版本安装
卸载旧版本,安装新版本
卸载新版本,安装新版本
3)web自动化测试使用的工具较常用的是QTP,而android手机自动化测试工具比较常用的是monkey、monkeyrunner。本回答被提问者和网友采纳