Browsed by
תגית: Android

Push Notifications for Cordova using Firebase

Push Notifications for Cordova using Firebase

אני מניח שלא צריך להציג את Cordova (לשעבר PhoneGap. פלטפורמה ליצירת אפליקציות היברידיות – תוכן web-י מותאם למערכות הפעלה שונות, כמו אנדרואיד ו- iOS. זהו). וגם לא את Firebase (שירות של גוגל ליצירת backend עבור אפליקציות. זהו).

אבל איך משלבים ביניהם?

יצירת והגדרת פרוייקט

(אם עדיין לא מותקן אצלכם cordova – אז npm install -g cordova יעשה את העבודה).

ניצור פרוייקט-

cordova create fireBaseApp com.firebase.app FireBaseApp

נעבור לתיקייה של הפרוייקט (cd fireBaseApp) ונוסיף את אנדרואיד-

cordova platform add android

כדי להשתמש ב- Firebase נתקין את cordova-plugin-firebase

cordova plugin add cordova-plugin-firebase@0.1.21 --save

יצירת פרוייקט Firebase

נכנס לקונסולת הניהול, ונבחר Add Project. נכניס את פרטי הפרוייקט:

נלחץ על "Add Firebase to your Android app". נמלא את פרטי האפליקציה:

בשלב הבא נוריד את הקובץ שנוצר, google-service.json ונצרף אותו לתיקיה הראשית של הפרוייקט שלנו.

שליחת הודעה

אפשר עכשיו להריץ את האפליקציה:

cordova run android

ננסה לשלוח הודעה. בקונסולה נלחץ על "Notifications" ואז "Send your first message".

נמלא את פרטי ההודעה ונשלח:

בשלב זה, ההודעה אמורה להופיע.

אם אתם משתמשים באנדרואיד 6 ומעלה, כנראה תקבלו הודעת שגיאה. הסיבה לכך, שהתוסף (בגירסתו הנוכחית, לפחות) מצפה שניצור קובץ xml עם הצבעים בהם תופיע ההודעה. מכיוון שלצורך הפרוייקט הזה לא מעניינים אותנו צבעים, פשוט נעביר להערה את הקוד המדובר.

בתיקיית הפרוייקט, בתוך platforms/android/src/org/apache/corodva/firebase, ישנו קובץ FirebasePluginMessagingService.java. נבצע בו את השינוי הבא:

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M)
            {
		//		int accentID = getResources().getIdentifier("accent", "color", getPackageName());
                // notificationBuilder.setColor(getResources().getColor(accentID, null));
            }

זהו, עכשיו זה יעבוד.

 

libGDX Scene2d tutorial – Part 2 – Splash Screen

libGDX Scene2d tutorial – Part 2 – Splash Screen

(חלק 1 נמצא כאן)

עברנו את השלב הראשון – טענו את קבצי התמונות/קול לזיכרון. לפני שאנחנו עוברים למשחק עצמו, אנחנו רוצים להציג את הלוגו של חברת המשחקים שלנו.

משהו כזה:

Splash Screen

כדי לעשות זאת, נשתמש (לראשונה) בספריית Scene2d.

Read More Read More

Two Cars

Two Cars

בהמשך לפוסט הזה, הפעם ניצור משחק.

בקצרה: libGDX היא ספרייה נוחה לשימוש עבור יצירת משחקי 2D. אפשר לראות בפוסט הנ״ל מדריך איך ליצור פרוייקט חדש ולהריץ אותו על פלטפורמות שונות.

ישנו משחק בשם Two Cars – צריך לשלוט בו זמנית על שתי מכוניות בלי להתנגש במכשולים. אני הולך ליצור גירסא שלו, עם שינוי קל. המשחק יראה בסופו של דבר ככה:

ezgif-2403319550

ניצור פרוייקט חדש בשם TwoCars. אין צורך ב- Box2D – לא נשתמש במנוע הפיזיקלי לצורך המשחק הזה.

נתחיל.

מבנה כללי

libGDX היא event-driven – כלומר האירועים השונים הם מה שמניעים אותנו. לדוגמא, בכל פעם שהמסך מתרפרש – תיקרא הפונקציה –

public void render(float delta)

 בה נכתוב מה אנחנו רוצים שיוצג על המסך. (מזכיר קצת את העבודה עם סקריפטים ב- Unity3D, שם העדכונים מגיעים לפונקציית update).

ניצור package חדש בשם helpers, וניצור בו שתי מחלקות – GameWorld, GameRenderer.

GameWorld – בה תהיה הלוגיקה של המשחק. היא תחזיק את ה- State של המשחק, המיקום בו נמצא כל אובייקט על המסך, וניקוד.

GameRenderer – אחראי לצייר על המסך את כל המידע שיש ב- GameWorld.

GameWorld:

public class GameWorld {
    public void update(float delta) {
 
    }
}

GameRenderer:

public class GameRenderer {
    private OrthographicCamera cam;
    private GameWorld gameWorld;
 
    public GameRenderer(GameWorld world){
        this.gameWorld = world;
 
        cam = new OrthographicCamera();
        cam.setToOrtho(true, GameConstants.SCREEN_WIDTH, GameConstants.SCREEN_HEIGHT);
    }
 
    public void render(){
 
    }
}

זה המבנה הבסיסי שיחזור על עצמו בכל משחק. בכל פריים חדש, נקרא ל- GameWorld כדי לעדכן את המצב במשחק, ואז נקרא ל- GameRenderer לעדכן את מה שמוצג.

ב- GameRenderer גם מאתחלים את המצלמה – היא אחראית על איך יראה כל מה שמוצג. נרחיב על כך בהמשך.

Read More Read More