Universal Apps – שיתוף קוד בין פלטפורמות Windows

31 באוגוסט 2014

אין תגובות

על פי החזון של מיקרוסופט, פלטפורמות Windows השונות (דסקטופ, טאבלט, מובייל , אקסבוקס) ישאפו ל"האחדת אפליקציות" – אותה אפליקציה תוכל לרוץ על כל פלטפורמות ווינדוס השונות באמצעות התאמות קוד מינימליות. במילים אחרות – בתור מפתחים נוכל לפתח פעם אחת אפליקציה ובהתאמה אוטומטית או התאמה קלה יחסית להיום, נוכל להפיץ אותה למגוון פלטפורמות ווינדוס. באפריל האחרון בכנס Build   של מיקרוסופט הכרזנו על צעד נוסף וחשוב בכיוון זה וחשפנו את טכנולוגית Universal Apps (אפליקציות אוניברסליות) . אם בעבר ניתן היה לעבוד עם Visual Studio על מנת לפתח אפליקציה ולהגיע ל- 20%-30% קוד משותף בין גרסת ה- Windows Phone לגרסת ה – Windows 8, הרי שבאמצעות שימוש ב- Universal Apps ניתן להגיע אפילו ל90% קוד משותף.

כחלק מתהליך זה והרצון ל"האחדה", מיקרוסופט הציבה לעצמה שלוש מטרות עיקריות בשחרור פלטפורמת הפיתוח של אפליקציות Windows:

1. להגיע ללקוחות בכל סוגי המכשירים: טלפונים, טאבלטים ומחשבים

2. להביא חדשנות ותמיכה להשקעות בפיתוח

3. להפוך את טכנולוגיות הפיתוח מרובת הפלטפורמות לקלות ונגישות יותר. וכאמור, החל מ-Windows Phone 8.1, תוכלו להשתמש ב-Windows Runtime כדי לבנות אפליקציות עבור כל סוגי המכשירים במשפחת Windows. השימוש בתבניות פרויקטים של אפליקציות אוניברסליות מאפשר לכם עכשיו ליצור אפליקציה אחת בלבד עם אותה לוגיקה עסקית אולם עם ממשק וחוויית משתמש שתהיה רלוונטית לאותו מכשיר ספציפי. גישה מאוחדת זו לפיתוח אפליקציות תאפשר לאפליקציה שלכם להגיע לא רק לטלפונים וטאלבטים של Windows, אלא גם למחשבים ניידים ועמדות עבודה.

בשביל להשתמש ב-Universal app יש צורך בגרסת Visual Studio 2013 Update 2 or later אשר בה תוכלו לעשות שימוש בתבנית פרויקט משותפת, המאפשרת ליצור מרחב פרויקט משותף להגדרת קוד הן עבור אפליקציות המיועדות לטאבלטים ומחשבים והן עבור אפליקציות המיועדות לטלפונים. פתרון זה כולל גם פרויקטים נפרדים עבור אלמנטים באפליקציה הייחודיים לכל אחד מסוגי הפלטפורמות. Visual Studio 2013 Update 2 כולל בנוסף מספר שיפורים לתמיכה בפיתוח אפליקציות Windows אוניברסליות המיועדות לכל מכשירי Windows.

1

תוכלו לבנות בו-זמנית יישום ל-Windows ו-Windows Phone, ולשתף קוד, user controls, סגנונות, מחרוזות ונכסים אחרים בין שני פרויקטים ב-Visual Studio. יכולת זאת מצמצמת במידה ניכרת את ההוצאה הכרוכה בבנייה ותחזוקה של אפליקציה נפרדת עבור כל סוג של מכשיר. תבניות האפליקציה האוניברסליות ב-Visual Studio זמינות נכון להיום ב-JavaScript, C#, VB ו-C++.

אם כבר יש לכם אפליקציה ב-Windows Store, או אם כבר התחלתם לבנות אפליקציה ל-Windows Store, תוכלו גם להוסיף בקלות את אפליקציית ה-Windows Phone שלכם לאותו פתרון.  2

המבנה של אפליקציות אוניברסליות

אפליקציה אוניברסלית היא בעצם אוסף של שלושה פרויקטים – פרויקט Windows Store, פרויקט Windows Phone ופרויקט Shared .

הפרויקטים של Windows Store ו-Windows Phone אחראים ליצירת חבילות האפליקציה . AppX Package המיועדות לשתי הפלטפורמות הספציפיות, פרויקטים אלה מכילים נכסים ( (assets המיועדים ספציפית לפלטפורמה הנבחרת.

3

ואילו הפרויקט המשותף, ה-Shared, מכיל נכסים המשותפים לשני הפרויקטים. סוגי הפריטים (.cs, xaml, .xml, .png, .resw, etc.) הנתמכים על-ידי הפרויקטים המשותפים זהים לאלה הנמצאים בפרויקטים הייעודיים לכל פלטפורמה. לפרויקטים המשותפים כשלעצמם אין פלט בינארי אבל התוכן שלהם מיובא על-ידי הפרויקטים הייעודיים ומשמש כחלק מתהליך בניית חבילות האפליקציה (.appx) של Windows Store ו-Windows Phone.

כתיבת קוד חוצה פלטפורמות בתוך פרוייקט Shared

בתיקיית ה- Shared ניתן לכתוב קוד אשר ירוץ על שתי הפלטפורמות. עם זאת, ניתן לבודד חלקים של הקוד המיועדים לפלטפורמה ספציפית על ידי שימוש ב- #ifdef directive והקבועים WINDOWS_APP ו- WINDOWS_PHONE_APP. ב- C++ תוכלו להשתמש ב- #if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP…#endif. בנוסף, תוכלו גם לגרור קבצים מפרויקטים המיועדים לפלטפורמה ספציפית ל- Shares Project ולהיפך, כדי לשנות את הסקופ של אותו קוד.

בתיקיית ה- Shared ניתן לכתוב קוד אשר ירוץ על שתי הפלטפורמות. עם זאת, ניתן לבודד חלקים של הקוד המיועדים לפלטפורמה ספציפית על ידי שימוש ב- #ifdef directive והקבועים WINDOWS_APP ו- WINDOWS_PHONE_APP. ב- C++ תוכלו להשתמש ב- #if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP…#endif. בנוסף, תוכלו גם לגרור קבצים מפרויקטים המיועדים לפלטפורמה ספציפית ל- Shares Project ולהיפך, כדי לשנות את הסקופ של אותו קוד.

4

כיצד לזהות קוד המיועד לפלטפורמה ספציפית?

כאשר כותבים קוד ב- Shared Project ניתן להשתמש ב- Intellisense כדי לזהות קוד המיועד לפלטפורמה ספציפית, כפי שניתן לראות בצילום המסך הבא-

4

כיצד לעשות שימוש חוזר בקוד קיים?

אם כבר פרסמת אפליקציה ב- Windows Store תוכלו בקלות לעשות שימוש חוזר בחלק מהקוד כדי לפרסם גירסה עבור Windows Phone ולהיפך. כדי לעשות זאת, ב- Solution Explorer לחצו על לחצן הימיני (right click) על הפרוייקט ובחרו Add Windows Phone 8.1 או Add Windows 8.1

4

Studio יוסיף את הפרוייקט החדש ל- solution ובנוסף יפתח Shared Project עם הקוד המשותף. כך תוכלו להזיז כל קוד שתרצו שיהיה משותף על ידי גרירתו אל תיקיית ה- Shared.

4

יש לוודא שהגדרות ה- styles בקובץ ה- App.xaml ישתמשו במשאבים הזמינים לשני סוגי האפליקציות. לחילופין הזיזו את ההגדרות לפרוייקט המתאים, Windows Store או Windows Phone.

סיכום

פיתוח אפליקציות משותפות באמצעות Universal app חוסך זמן ומשאבים, נותן חויית משתמש אחידה ומאוד משתלם במידה ורוצים לטרגט לשתי הפלטפורמות.

לשאלות נוספות או סיוע אתם מוזמנים לפנות אלי –noafo@microsot.com או כמובן לפורום פיתוח אפליקציות Windows store שלנו או פורום פיתוח Windows Phone.

 

noa franko-ohanaהפוסט נכתב על ידי נועה פרנקו-אוחנה,  Technical Evangelist של מיקרוסופט ישראל בנושא אפליקציות Windows Phone ו- Windows Store.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *