צרור הכלים להפעלת אפליקציות Chrome בנייד נמצא בגרסת טרום-השקה (Preview) מוקדמת. נשמח לקבל ממך לשלוח לנו משוב באמצעות מעקב אחר בעיות ב-GitHub, פורום המפתחים של אפליקציות Chrome, Stack Overflow או דף G+ למפתחים.
סקירה כללית
ניתן להריץ את אפליקציות Chrome ב-Android וב-iOS באמצעות צרור כלים שמבוסס על Apache Cordova, מסגרת לפיתוח לנייד בקוד פתוח לפיתוח אפליקציות לנייד באמצעות שימוש ב-HTML, ב-CSS וב-JavaScript.
Apache Cordova אורזת את קוד האינטרנט של האפליקציה במעטפת אפליקציה מקורית ומאפשרת לכם
להפיץ את אפליקציית האינטרנט ההיברידית שלך דרך Google Play ו/או Apple App Store. כדי להשתמש ב-Apache Cordova
באפליקציית Chrome קיימת, צריך להשתמש בשורת הפקודה cca
(c ordova c hrome a pp)
של Google.
מקורות מידע נוספים
- יש כמה שיקולים מיוחדים שצריך לזכור כשמפתחים עם קורדובה. פרטנו אותם בקטע שיקולים.
- כדי לראות אילו ממשקי API של Chrome נתמכים בנייד, אפשר להיכנס לדף סטטוס ה-API.
- כדי לראות תצוגה מקדימה של אפליקציית Chrome במכשיר Android ללא מערכת הכלים, צריך להשתמש באפליקציות Chrome ב-Developer Tool (ADT).
בואו נתחיל.
שלב 1: מתקינים את כלי הפיתוח
אפליקציות Chrome לנייד יכולות לטרגט ל-iOS 6 ואילך ול-Android 4.x+.
יחסי תלות של פיתוח בכל הפלטפורמות
נדרשת גרסה 0.10.0 (ואילך) של Node.js עם
npm
:- Windows: מתקינים את Node.js באמצעות קובצי ההפעלה של ההתקנה שניתן להוריד מ nodejs.org.
- OS X או Linux: קובצי הפעלה של התקנה זמינים גם באתר nodejs.org. אם אם אתם רוצים להימנע מהצורך בגישה לרמה הבסיסית (root), יכול להיות שיהיה נוח יותר להתקין אותו דרך nvm. דוגמה:
curl https://raw.github.com/creationix/nvm/master/install.sh | sh source ~/.bash_profile || source ~/.profile || source ~/.bashrc nvm install 0.10 nvm alias default 0.10
מוגדר טירגוט ל-Android
כשמפתחים אפליקציה ל-Android, צריך גם להתקין:
- Java JDK 7 (ומעלה)
- Android SDK גרסה 4.4.2 (ואילך)
- מתקינים את Android SDK ואת הכלים למפתחי Android, שכלולים בחבילה עם Android ADT.
- מוסיפים את
sdk/tools
ו-sdk/platform-tools
למשתנה הסביבה PATH. - OS X: הגרסה של Eclipse שכלולה ב-Android SDK מחייבת JRE 6. אם המשתמש פותח ב-Eclipse.app לא מופיעה בקשה להתקין את JRE 6. אפשר להוריד אותה דרך Mac App Store.
- Linux: ל-Android SDK נדרשות ספריות תמיכה ב-32 ביט. ב-Ubuntu, מקבלים את הקבצים האלה דרך:
apt-get install ia32-libs
- Apache Ant
- מוסיפים את
apache-ant-x.x.x/bin
למשתנה הסביבה PATH.
- מוסיפים את
מוגדר טירגוט ל-iOS
לתשומת ליבך, ניתן לפתח ל-iOS רק ב-OS X. בנוסף, צריך להתקין את:
- Xcode 5 (ואילך) שכולל את כלי שורת הפקודה Xcode
- ios-deploy (יש לפרוס במכשיר iOS)
npm install -g ios-deploy
- ios-sim (יש צורך לפרוס בסימולטור של iOS)
npm install -g ios-sim
- אופציונלי: הרשמה כמפתח iOS
- זה הכרחי כדי לבצע בדיקה במכשירים אמיתיים וכדי לשלוח את האפליקציה לחנות האפליקציות.
- אפשר לדלג על ההרשמה אם מתכננים להשתמש רק בסימולטורים של iPhone/iPad.
התקנת כלי שורת הפקודה cca
התקנת cca
דרך npm:
npm install -g cca
אם רוצים לעדכן את ה-toolchain בהמשך עם גרסאות חדשות: npm update -g cca
.
כדי לוודא שהכול מותקן כראוי, מריצים את הפקודה הזו משורת הפקודה:
cca checkenv
יוצג מספר הגרסה של cca
שהופק פלט ואישור לגבי ה-SDK ל-Android או ל-iOS
בתהליך ההתקנה.
שלב 2: יוצרים פרויקט
כדי ליצור פרויקט ברירת מחדל של אפליקציית Chrome לנייד בספרייה בשם YourApp
צריך להריץ:
cca create YourApp
אם כבר בניתם אפליקציית Chrome ואתם רוצים לנייד אותה לפלטפורמה לנייד, תוכלו להשתמש
סימון --link-to
כדי ליצור קישור סימבולי אליו:
cca create YourApp --link-to=path/to/manifest.json
אם במקום זאת אתם רוצים להעתיק את הקבצים הקיימים של אפליקציית Chrome, אפשר להשתמש בדגל --copy-from
:
cca create YourApp --copy-from=path/to/manifest.json
אין לכם עדיין אפליקציית Chrome משלכם? נסו אחת מתוך אפליקציות Chrome לדוגמה לנייד תמיכה.
שלב 3: פיתוח
תוכלו ליצור ולהפעיל את האפליקציה בשתי דרכים:
- אפשרות א': משורת הפקודה, באמצעות הכלי
cca
, או - אפשרות ב': באמצעות סביבת פיתוח משולבת (IDE), כמו ליקוי חמה או Xcode. השימוש בסביבת פיתוח משולבת (IDE) הוא אופציונלי לחלוטין (אבל שימושי בדרך כלל) כדי לסייע בהפעלה, הגדרה וניפוי באגים של האפליקציה ההיברידית שלך לנייד.
אפשרות א': פיתוח ופיתוח באמצעות שורת הפקודה
מהרמה הבסיסית (root) של תיקיית הפרויקט שנוצרה ב-cca
:
Android
- כדי להריץ את האפליקציה באמולטור Android:
cca emulate android
- הערה: כדי לבצע את הפעולה הזו, צריך להגדיר אמולטור. כדי להגדיר זאת, אפשר להריץ את
android avd
. כדי להוריד תמונות נוספות של אמולטור, מריצים אתandroid
. כדי שהתמונות ב-Intel יפעלו מהר יותר, מתקינים את HAXM של Intel.
- הערה: כדי לבצע את הפעולה הזו, צריך להגדיר אמולטור. כדי להגדיר זאת, אפשר להריץ את
- כדי להריץ את האפליקציה במכשיר Android מחובר:
cca run android
iOS
- כדי להריץ את האפליקציה בסימולטור iOS:
cca emulate ios
- כדי להפעיל את האפליקציה במכשיר iOS מחובר:
cca run ios
- הערה: לשם כך, יש להגדיר פרופיל ניהול תצורה למכשיר.
אפשרות ב': פיתוח ופיתוח באמצעות סביבת פיתוח משולבת (IDE)
Android
- במצב ליקוי חמה, בוחרים '
File
->'Import
. - בחירת
Android
>Existing Android Code Into Workspace
. - ייבוא מהנתיב שיצרת באמצעות
cca
.- צפויים להיות שני פרויקטים לייבוא, אחד מהם הוא
*-CordovaLib
.
- צפויים להיות שני פרויקטים לייבוא, אחד מהם הוא
- לוחצים על הלחצן 'הפעלה' כדי להפעיל את האפליקציה.
- יהיה עליך ליצור תצורת הרצה (כמו בכל יישומי Java). אתם בדרך כלל מקבלים בפעם הראשונה שהתבקשתי לעשות זאת.
- גם בפעם הראשונה יהיה עליך לנהל את המכשירים או האמולטורים.
iOS
פותחים את הפרויקט ב-Xcode על ידי הקלדת הפקודה הבאה בחלון הטרמינל:
cd YourApp open platforms/ios/*.xcodeproj
חשוב לוודא שאתם יוצרים את היעד הנכון.
בפינה הימנית העליונה (לצד הלחצנים 'הפעלה' ו'עצירה'), יש תפריט נפתח לבחירת פרויקט היעד במכשיר. מוודאים שהאפשרות
YourApp
נבחרה ולאCordovaLib
.לוחצים על הלחצן 'הפעלה'.
ביצוע שינויים בקוד המקור של האפליקציה
קובצי ה-HTML, ה-CSS וה-JavaScript נמצאים בספרייה www
של תיקיית פרויקט ה-cca.
חשוב: אחרי שמבצעים שינויים ב-www/
, צריך להריץ את cca prepare
לפני פריסה
תרגום מכונה. אם מריצים את cca build
, cca run
או cca emulate
משורת הפקודה,
שלב ההכנה יתבצע באופן אוטומטי. אם מפתחים באמצעות Eclipse/XCode, צריך להריץ
cca prepare
ידנית.
ניפוי באגים
אפשר לנפות באגים באפליקציית Chrome בנייד באותו אופן שבו מנפים באגים באפליקציות Cordova.
שלב 4: השלבים הבאים
עכשיו, כשיש לך אפליקציית Chrome לנייד פעילה, יש הרבה דרכים לשפר את החוויה ב- מכשירים ניידים.
מניפסט לנייד
יש הגדרות מסוימות של אפליקציית Chrome שחלות רק על פלטפורמות לניידים. יצרנו
קובץ www/manifest.mobile.json
שיכיל את הנתונים האלה, וההפניות לערכים הספציפיים של כל משתמש
את התיעוד של יישומי הפלאגין ואת המדריך הזה.
צריך לשנות את הערכים כאן בהתאם.
סמלים
אפליקציות לנייד צריכות עוד כמה רזולוציות סמלים מאשר אפליקציות Chrome למחשב.
ב-Android נדרשים הגדלים הבאים:
- 36 פיקסלים, 48 פיקסלים, 78 פיקסלים, 96 פיקסלים
באפליקציות ל-iOS, הגדלים הנדרשים משתנים בהתאם למכשיר שבו אתם תומכים: iOS 6 לעומת iOS 7. מספר הסמלים המינימלי הנדרש הוא:
- iOS 6: 57px, 72px, 114px, 144px
- iOS 7: 72px, 120px, 152px
רשימת סמלים מלאה תיראה כך בקובץ ה-manifest.json
:
"icons": {
"16": "assets/icons/icon16.png",
"36": "assets/icons/icon36.png",
"48": "assets/icons/icon48.png",
"57": "assets/icons/icon57.png",
"72": "assets/icons/icon72.png",
"78": "assets/icons/icon78.png",
"96": "assets/icons/icon96.png",
"114": "assets/icons/icon114.png",
"120": "assets/icons/icon120.png",
"128": "assets/icons/icon128.png",
"144": "assets/icons/icon144.png",
"152": "assets/icons/icon152.png"
}
הסמלים יועתקו למקומות המתאימים בכל פלטפורמה בכל הרצה
cca prepare
מסכי פתיחה
אפליקציות ב-iOS מציגות מסך פתיחה קצר בזמן שהאפליקציה נטענת. סט של מפזר קורדובה שמוגדר כברירת מחדל
מסכים כלולים ב-platforms/ios/[AppName]/Resources/splash
.
הגדלים הנדרשים הם:
- 320 פיקסלים x 480 פיקסלים + 2x
- 768px x 1024px + 2x (לאורך של iPad)
- 1024px x 768px + 2x (לרוחב של iPad)
- 640 x 1146 פיקסלים
התמונות של מסך הפתיחה לא משתנות כרגע על ידי cca
.
שלב 5: פרסום
בספריית platforms
של הפרויקט יש שני פרויקטים מותאמים אישית מלאים: אחד ל-Android, ו
אחת ל-iOS. אפשר ליצור גרסאות הפצה של הפרויקטים האלה ולפרסם אותן ב-Google Play או
בחנות האפליקציות של iOS.
פרסום בחנות Play
כדי לפרסם את האפליקציה ל-Android בחנות Play:
מעדכנים את שני מזהי הגרסאות של Android ואז מריצים את
cca prepare
:android:versionName
מוגדר באמצעות המפתחversion
ב-www/manifest.json
(הפעולה הזו מגדירה את של האפליקציה הארוזה למחשב).android:versionCode
מוגדר באמצעות המפתחversionCode
ב-www/manifest.mobile.js
.
עריכה (או יצירה) של
platforms/android/ant.properties
והגדרתkey.store
וגםkey.alias
נכסים (כפי שמוסבר במסמכים למפתחי Android).יוצרים את הפרויקט:
./platforms/android/cordova/build --release
עליך לאתר את קובץ ה-APK החתום שנמצא ב-
platforms/android/ant-build/
.מעלים את האפליקציה החתומה אל מסוף המפתחים של Google Play.
פרסום בחנות האפליקציות ל-iOS
- צריך לעדכן את גרסת האפליקציה על ידי הגדרת המפתח של
CFBundleVersion
ב-www/manifest.mobile.js
, ואז מריצים אתcca prepare
. פותחים את קובץ פרויקט ה-Xcode שנמצא בספרייה
platforms/ios
:open platform/ios/*.xcodeproj
פועלים לפי ההוראות במדריך להפצת אפליקציות של Apple.
שיקולים מיוחדים
אם זו הפעם הראשונה שאתם משתמשים באפליקציות Chrome, הדבר החשוב ביותר הוא שחלק מתכונות האינטרנט מושבתות. עם זאת, חלק מהם כן פועלים כרגע בקורדובה.
יכול להיות שאפליקציית Chrome לא תפעל כמו שצריך בנייד. הנה מספר בעיות נפוצות בניוד לניידים:
- בעיות פריסה במסכים קטנים, במיוחד בפריסה לאורך.
- הצעה לתיקון: השתמשו בשאילתות מדיה של שירות CSS כדי לבצע אופטימיזציה של התוכן כך שיתאים למסכים קטנים יותר.
- המערכת תתעלם מהגדלים של חלונות אפליקציית Chrome שהוגדרו דרך chrome.app.window, ובמקום זאת ייעשה שימוש
המאפיינים המקוריים של המכשיר.
- הצעה לתיקון: הסרת מאפייני חלון שמוגדרים בתוך הקוד; לעצב אפליקציה בגדלים שונים או בראשי תיבות.
- יהיה קשה להקיש על לחצנים וקישורים קטנים עם האצבע.
- הצעה לתיקון: צריך לשנות את משטחי המגע כך שיהיו לפחות 44 x 44 נקודות.
- התנהגות לא צפויה כשמסתמכים על העברת העכבר שלא קיימת במסכי מגע.
- הצעה לתיקון: בנוסף להעברת העכבר, מפעילים רכיבי ממשק משתמש כמו תפריטים נפתחים והסברים קצרים מקישים.
- השהיה של 300 אלפיות השנייה עבור הקשה.
- הצעה לתיקון: השתמשו ב-polyfill של JavaScript ב-FastClick by FT Labs.
- כדי לקבל מידע על הרקע, כדאי לקרוא את המאמר הזה בנושא HTML5Rocks.
ממשקי API נתמכים של Chrome
הפכנו רבים מממשקי ה-API העיקריים של Chrome לזמינים ל-Chrome Apps לנייד, כולל:
- identity – כניסה למשתמשים באמצעות OAuth2
- payments - מכירת מוצרים וירטואליים בתוך האפליקציה לנייד
- pushMessaging - דחיפת הודעות לאפליקציה מהשרת שלך
- sockets – שליחה וקבלה של נתונים ברשת באמצעות TCP ו-UDP
- התראות (Android בלבד) - שליחת התראות עשירות מהאפליקציה לנייד
- storage – אחסון ואחזור של נתוני מפתח/ערך באופן מקומי
- syncFileSystem – אחסון ואחזור קבצים שגובו על ידי Google Drive
- התראות - הרצת משימות מדי פעם
- לא פעיל – זיהוי שינויים במצב חוסר הפעילות של המחשב
- power - ביטול תכונות ניהול צריכת החשמל של המערכת
עם זאת, לא כל ממשקי ה-API של Chrome JavaScript מוטמעים. ולא כל התכונות של Chrome למחשב זמין בנייד:
- אין תג
<webview>
- אין IndexedDB
- אין getUserMedia()
- אין NaCl
אפשר לעקוב אחרי ההתקדמות בדף סטטוס API.
כלי למפתחים של אפליקציות Chrome
Chrome Apps Developer Tool (ADT) ל-Android הוא אפליקציה עצמאית ל-Android שמאפשרת לך להוריד ולהפעיל אפליקציית Chrome בלי להגדיר את צרור הכלים של הפיתוח כפי שמתואר למעלה. כדאי להשתמש את Chrome ADT כאשר רוצים להציג במהירות תצוגה מקדימה של אפליקציית Chrome קיימת (שכבר ארוזה כקובץ .crx) במכשיר Android.
Chrome ADT ל-Android נמצא כרגע בגרסת טרום-אלפא. כדי לנסות, אפשר להיכנס נתוני הגרסה של ChromeADT.APK להוראות התקנה ושימוש.