שרשרת הכלים להפעלת אפליקציות Chrome לנייד נמצאת בתצוגה מקדימה למפתחים. אתם מוזמנים לשלוח לנו משוב דרך הכלי למעקב אחר בעיות ב-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).
משאבים נוספים
- יש כמה שיקולים מיוחדים שכדאי לקחת בחשבון במהלך הפיתוח עם Cordova. פירטנו אותם בקטע שיקולים.
- כדי לראות אילו ממשקי Chrome API נתמכים בנייד, אפשר להיכנס לדף API Status.
- כדי להציג תצוגה מקדימה של אפליקציית Chrome במכשיר Android ללא ה-toolchain, צריך להשתמש בכלי למפתחים של אפליקציות Chrome (ADT).
בואו נתחיל.
שלב 1: התקנת כלי הפיתוח
Chrome Apps for mobile Toolschain יכול לטרגט ל-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
- מוסיפים את
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), כמו Eclipse או Xcode. השימוש בסביבת פיתוח משולבת (IDE) הוא אופציונלי לחלוטין (אבל במקרים רבים הוא שימושי) כדי לסייע בהפעלה, בהגדרה ובניפוי באגים באפליקציה ההיברידית לנייד.
אפשרות א': פיתוח ופיתוח באמצעות שורת הפקודה
מהשורש של תיקיית הפרויקט שנוצרה על ידי cca
:
Android
- כדי להריץ את האפליקציה באמצעות אמולטור Android:
cca emulate android
- הערה: לשם כך עליכם להגדיר אמולטור. כדי להגדיר זאת, אפשר להריץ את
android avd
. אפשר להוריד תמונות אמולטור נוספות על ידי הרצתandroid
. כדי שתמונות האינטל יפעלו מהר יותר, התקינו את HAXM של Intel.
- הערה: לשם כך עליכם להגדיר אמולטור. כדי להגדיר זאת, אפשר להריץ את
- כדי להפעיל את האפליקציה במכשיר Android מחובר:
cca run android
iOS
- כדי להפעיל את האפליקציה בסימולטור iOS:
cca emulate ios
- כדי להריץ את האפליקציה במכשיר iOS מחובר:
cca run ios
- הערה: לשם כך עליך להגדיר פרופיל ניהול תצורה במכשיר.
אפשרות ב': פיתוח ובנייה באמצעות IDE
Android
- ב-Eclipse, בוחרים
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, נדרשים הגדלים הבאים:
- 36px, 48px, 78px, 96px
באפליקציות ל-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
יש קבוצת מסכי פתיחה של Cordova שמוגדרת כברירת מחדל.
הגדלים הנדרשים:
- 320px x 480px + 2x
- 768px x 1024px + 2x (iPad לאורך)
- 1024px x 768px + 2x (iPad לרוחב)
- 640 x 1146 פיקסלים
בשלב הזה, התמונות של מסך הפתיחה לא משתנות על ידי cca
.
שלב 5: פרסום
בספריית platforms
של הפרויקט יש שני פרויקטים מקוריים מלאים: אחד ל-Android ואחד ל-iOS. אתם יכולים ליצור גרסאות הפצה של הפרויקטים האלה ולפרסם אותם ב-Google Play או ב-iOS App Store.
פרסום בחנות 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 Console.
פרסום בחנות האפליקציות של 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 אלפיות השנייה בהקשה.
- הצעה לתיקון: יש להשתמש בתוסף JavaScript FastClick by FT Labs".
- כדאי לקרוא את המאמר הזה בנושא HTML5Rocks כדי לקבל קצת מידע על הרקע.
ממשקי Chrome API נתמכים
הרבה מממשקי ה-API הבסיסיים של Chrome זמינים לאפליקציות Chrome לנייד, כולל:
- identity - כניסה של משתמשים באמצעות OAuth2
- payments - מכירת מוצרים וירטואליים בתוך האפליקציה לנייד
- pushMessaging - דחיפה של הודעות אל האפליקציה שלך מהשרת
- sockets – שליחה וקבלה של נתונים ברשת באמצעות TCP ו-UDP
- התראות (Android בלבד) - שליחת התראות עשירות מהאפליקציה לנייד
- storage – אחסון ואחזור של נתוני מפתח-ערך באופן מקומי
- syncFileSystem - אחסון ואחזור של קבצים המגובים על ידי Google Drive
- התראות - הרצת משימות מדי פעם
- idle – זיהוי שינויים במצב 'לא פעיל' של המכונה
- Power (הפעלה) - ביטול תכונות ניהול צריכת החשמל של המערכת
עם זאת, לא כל ממשקי ה-API של JavaScript ב-Chrome מוטמעים. ולא כל התכונות של Chrome Desktop זמינות בנייד:
- אין תג
<webview>
- אין IndexedDB
- אין getUserMedia()
- אין NaCl
ניתן לעקוב אחר ההתקדמות בדף סטטוס ה-API.
כלי למפתחים של אפליקציות Chrome
הכלי למפתחים של אפליקציות Chrome (ADT) ל-Android הוא אפליקציה עצמאית ל-Android שמאפשרת להוריד ולהפעיל אפליקציית Chrome בלי להגדיר את 'צרור הכלים למפתחים' כמתואר למעלה. כדאי להשתמש ב-Chrome ADT כדי להציג במהירות תצוגה מקדימה של אפליקציית Chrome קיימת (שכבר ארוזה עם הסיומת .crx) במכשיר Android.
Chrome ADT ל-Android נמצא כרגע בגרסת טרום-אלפא. רוצים לנסות? עיינו בנתוני הגרסה של ChromeADT.apk, שם תוכלו למצוא הוראות להתקנה ולשימוש.