שיעורי אנדרואיד

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

* מהו אנדרואיד?
אנדרואיד (Android) זו מערכת הפעלה המבוססת על ליבת לינוקס ומיועדת לסמארטפונים, טאבלטים, טלוויזיות ועוד.
אנדרואיד הפכה למערכת הנפוצה ביותר בעולם לטלפונים חכמים, כשעפ"י הסקרים היא מחזיקה בנתח של מעל 80% מכלל שוק הטלפונים החכמים העולמי.
אנדרואיד מופצת על ידי חברת גוגל.

באיזה שפה מפתחים אפליקציות לאנדרואיד?
על מנת לפתח את האפליקציה הגדולה שתמיד חלמתם עליה – יש לדעת ידע בסיסי בכתיבת ג'אווה. לכן מומלץ ללמוד באתר את חלק פיתוח הג'אווה, אולם - בקורס כאן נתעסק יותר בפיתוח האפליקציות בדרך פשוטה וקלה יחסית ללא צורך בידע קודם על ג'אווה.

*התקנת ג'אווה
ג'אווה הינה שפת-על שמיועדת לפיתוח יישומים ופריסתם על גבי פלטפורמות שונות.
על הרבה מחשבים הג'אווה כבר מותקנת עם מערכת ההפעלה, אך במידה ולא – עליכם להתקין אותה לפני שאנחנו בכלל נכנסים לעולם האנדרואיד.
ההתקנה מותאמת עפ"י מס' הסיביות. 32 או 64. היכנסו למחשב שלי ובידקו.
לאחר מכן – הורידו מכאן את הג'אווה הרלוונטית אליכם.



*התקנת אנדרואיד סטודיו
התוכנה בה כתבו עד לא מזמן וחלק מחברות ההייטק עדיין משתמשות בה, היא תוכנת הפיתוח בג'אווה Eclipse. גוגל יצרו תוכנת פיתוח ביתית וטובה בשם "אנדרואיד סטודיו". היא נכנסת חזק יותר לעולם פיתוח האפליקציות ועליה אסביר לכם במדריך.


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

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


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

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

*הקמת פרוייקט ראשון
במידה והגעתם למצב בו התוכנה עלתה לכם, הכל הותקן ומעודכן – סימן שאפשר להתחיל.
בסרגל העליון, לחיצה על "FILE". לאחר מכן, לחיצה על "NEW PROJECT" ואנחנו מתחילים.
נפתח חלון בו תמלאו את שם הפרוייקט שלכם, שם סביבת העבודה שלכם ושם התיקייה בה יותקנו הקבצים. חשוב שהשם של סביבת העבודה יהיה מקורי משלכם ולא example.com כפי שמגיע עם ההתקנה, מפני שגוגל לא מקבלים את זה ביום בו תרצו להעלות את האפליקציה לגוגל סטור.
לאחר מכן, נגיע לחלון גדול בו יש אפשרויות שונות לבחירת האקטיביטי שייפתח לכם את האפליקצייה. נבחר בהתחלה ב"Blank Activity" ולא באקטיביטי-מפה, אקטיביטי-טאבים או כל אקטיביטי אחר.
אני אומר הרבה את המילה "אקטיביטי" מיד אסביר לכם מהי.
לאחר שבחרנו ב""Blank Activity, ניגש לבחירת שם לאותו אקטיביטי ראשון. במקרה הזה, ממליץ להישאר כך - "MainActivity". כלומר, האקטיביטי הראשי שייפתח לכם את האפליקציה.
לאחר שסיימתם, לחצו על "FINISH" והאפליקציה תיבנה לכם כחצי דקה של עבודה עצמאית של התוכנה. היכנסו לסרטון שלי ועברו שלב שלב איתי ביחד בדיוק כמו שפירטתי כאן.

*מהו אקטיביטי?
אקטיביטי זהו המסך אותו ייראה המשתמש. ברגע שאתם פותחים את אפליקציית Whatsapp, האקטיביטי הפותח הוא BlankActivity עם רשימה נגללת. ברגע שאתם פותחים את אפליקציית Waze, האקטיביטי הפותח הוא MapActivity עם מפת הדרכים שלכם.
כלומר, אקטיביטי זהו הדף עליו נציג את האפליקצייה. לכל אפליקצייה יהיו כמה וכמה אקטיביטיים עליה נציג את המידע שלנו. נתחיל בתור התחלה, עם הראשון.

*האקטיביטי הראשון
ברגע שהתוכנה סיימה להתקין את האפליקצייה שלנו עם האקטיביטי הראשי שהגדרנו לה, היא פתחה שני קבצים. האחד MainActivity.Java, בו ניגע בהמשך.
השני, activity_main.xml. עליו נעבוד כרגע. ברגע שנפתח אותו, נראה את המסך הלבן שבחרנו. לא מסך מפה, לא מסך כזה או אחר. Blank Activity – כפי שבחרנו – יוצר מסך לבן ונקי. עם טקסט אחד קטן עליו.
"Hello World!"
ברגע שנלחץ בסרגל העליון על החץ הירוק, הוא יסרוק אילו אימולטורים או מכשירי אנדרואיד מחוברים למחשב עליהם הוא יכול להריץ את האפליקצייה החדשה שלנו.
במידה והתקנתם כפי שציינתי בשיעור הקודם ובתחילת השיעור הזה, הוא לא יעשה בעיות ויציג את האימולטורים ו/או המכשירים שמכיר. ביחרו אחד מהם, תריצו אותו והמתינו בסבלנות.
תוך כמה רגעים והופ – האפליקצייה הראשונה נוסדה לה. כן, בהחלט, קצת מעפנה. רקע לבן, בלי אפקטים, כיתוב לא רציני וגם הלוגו מעפן ביותר. אבל הי, התחלה!

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

אחרי שבשיעור הקודם הבנו איך לפתוח פרוייקט חדש עם אקטיביטי ראשון כדף פתיחה, בשיעור היום, נלמד איך לגרום לו להיות יותר "חי" ולעצב אותו.

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

*כתיבת אלמנטים ב-XML
כל מה שכתבתם וגררתם נכתב אוטומטית לXML של האנדרואיד. למשל, גררנו תיבת טקסט חדשה דרך הסרגל השמאלי. הגדרנו שהיא בגודל 30dp בצבע כחול דרך הסרגל הימני.
כעת, ניכנס לתוך קובץ ה-XML ונוכל לראות את הקוד כתוב בו. כמובן שאפשר גם לשנות ולהזיז, אולם למתחילים שבינינו מומלץ להשתמש באפשרות הגרירה הפשוטה שיצרו גוגל עבורינו.

בשיעור הבא, נגרום לכל האלמנטים שהוספנו לעשות פעולה מסוימת דרך קוד הג'אווה.







אחרי שהקמנו את הפרוייקט עם קובץ XML יפה ומעוצב, עכשיו ניגש לתכנות. כפי שציינתי עם תחילת המדריך, גם מי שאין לו ידע בג'אווה – יוכל להצליח במידה ויעבור שלב שלב במדריך שלי. היום, נתחיל פרקטיקה וניגש לג'אווה עצמה.

*פונקציות ב-JAVA
ג'אווה זו שפת תכנות הפועלת עפ"י קלאסים (קבצי ג'אווה טקסטיים עם סיומת .java) שמכילים פונקציות. ברגע שאתם פותחים פרוייקט חדש "בלאנק אקטיביטי", האנדרואיד סטודיו יוצר עבורכם קובץ קלאס ג'אווה ראשי שמכיל פונקציות שונות. כל פונקציה מפעילה דבר אחר באותו העמוד באפליקציה שלכם. כל פונקציה נפתחת בשם שלה ומיד לאחר השם סוגריים מסולסלים שבהם נמצאים כל הפקודות והקודים השונים. לבינתיים, נתרכז אך ורק בפונקציה הראשית "onCreate" ואת שתי הפונקציות הנוספות שהקים עבורינו האנדרואיד סטודיו נמחק.

*מעגל החיים של אקטיביטי
ברגע שאנחנו יוצרים אקטיביטי חדש, הדבר הראשון שהוא מחפש זו פונקציה בשם "onCreate". לאחריה, באות עוד 5 פונקציות המעידות על "התחלה", "התנתקות", "הפסקה ", "יציאה ", "מחיקה מהזיכרון".
"onCreate" זו הפונקציה הראשונה ב"מעגל החיים" של האקטיביטי. עליה נעבוד לבינתיים ובה נכתוב את כל הפקודות. כל מה שיהיה כתוב בה, יקרה מיד אם פתיחתו של האקטיביטי שלנו.
במידה ואתם רוצים ליצור באפליקציה שלכם פונקציות ופעולות שונות ברגעים אחרים במעגל החיים של האקטיביטי, לדוגמת: פקודה ברגע שאתם יוצאים מהאקטיביטי/מפסיקים אותו/מוחקים אותו מהזיכרון ועוד, אנא קיראו על כך בגוגל. לא מורכב.

*הקוד של לחיצה על כפתור
על מנת לקשר אלמנט מסוים ללחיצה, יש קוד ברור ופשוט. כל שעליכם לעשות הוא לדעת מהו ה-ID של אותו VIEW עליו אתם רוצים לעבוד. למשל, הID של הTEXTVIEW שלנו הוא text_tal. כלומר נכתוב בתוך ה-onCreate את המלל הבא:

    findViewById(R.id.text_tal).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    }
    }


*טואסט
בתוך הסוגריים המסולסלים יבוא הקוד הבא:
Toast.makeText(MainActivity.this,"Your Text!!",Toast.LENGTH_LONG).show();





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

*הוספת אקטיביטי חדש בלחיצת כפתור שמאלי בעכבר על התיקייה בה נמצאים קצבי הג'אווה, ייפתח תפריט. נבחר באופציה של יצירת אקטיביטי חדש => בלאנק אקטיביטי.
אותו התפריט שהיה לנו בהתחלה, עם היווצרות האקטיביטי הראשון, נחשף גם עכשיו וניתן לבחור שם לאקטיביטי והגדרות נוספות. לאחר מכן, ברגע שאישרתם, "אנדרואיד סטודיו" יוצר עבורכם גם את קובץ הXML (בו נעצב את האקטיביטי החדש עכשיו) וגם את קבצי הג'אווה (בו נכתוב את את שורות הקוד).

*אינטנט אינטנט זהו הכלי המקשר בין האקטיביטיים ודרכו אפשר לשלוח ממקום אחד למקום שני. בואו נראה איך זה עובד בקוד:

    findViewById(R.id.text_tal).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, MainActivity2.class);
    startActivity(intent);
    }
    }
מי שהקוד נראה לו ג'יבריש, נא לחזור רגע לשיעור הקודם.
MainActivity – זהו שם קובץ הג'אווה של האקטיביטי הראשי והראשון. ממנו אני שולח את הבקשה להעביר דף.
MainActivity2 - זהו שם קובץ הג'אווה החדש שיצרתי.
כמובן שאת השמות אפשר לשנות לבחירה.
Intent זהו הכלי דרכו מעבירים מידע. מומלץ לצפות בסרטון ולהבין איך הכל עובד שלב אחרי שלב.





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

*הוספת תמונה לתיקיית האפליקציה
בקליק ימני על העכבר באחת מתיקיות הסרגל השמאלי, ייפתח תפריט ובו אפשרות של יצירת תמונה. ייפתח חלון ובו ניתן להכניס תמונה. ניתן להכניס תמונה מהמחשב, דרך מאגר תמונות של האנדרואיד סטודיו וגם דרך מלל.
במידה ואתם רוצים להוסיף דמויות ורקעים לאפליקצייה, תבחרו באפשרות של ייבוא תמונה מהמחשב. תעלו את התמונה ותראו שהאנדרואיד סטודיו מסדר את התמונות לפי 4 גדלים ומתאים כל מכשיר שיוריד את האפליקציה שלכם לפי הגודל שנקבע.

*שינוי לוגו
באותו החלון שנפתח יש שורה בתחתית. בה נקרא לתמונה בשם. במידה ונרשום ic_launcher התמונה שניצור תהפוך ללוגו.


*הוספת תמונה ל-XML
בתוך ה-XML שלנו, נוכל לרשום בצורת קוד או לגרור תמונה מהסרגל השמאלי. ה-src מהווה את המיקום של התמונה. כאשר תמיד נרשום @drawble/ ורק אז את השם של התמונה שלנו.
    <ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myImage"
    android:id="@+id/btnImg"/>





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

    EditText edit = (EditText) findViewById(R.id.editText);
    edit.getText().toString();
שתי הפעולות של ("getText") ו("toString") הן קריאות בJAVA למשיכת הטקסט.

*הופעה על טקסט
לאחר שמשכנו את הטקסט נרצה להציג אותו בטואסט קופץ לצורך הדוגמא:
    Toast.makeText(MainActivity.this, edit.getText().toString(), Toast.LENGTH_LONG).show();

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





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

*Sharedpreferences
Sharedpreference זהו השם של שיטת העבודה לשמירת נתונים על המכשיר. השמירה הינה שמירה אישית, בתוך המכשיר עצמו. היא יכולה לשרת אותנו באפליקציות של חידונים אישיים, הרשמה אישית בתוך המכשיר, משחק שנרצה לשמור בו שלבים.
המטרה ב" Sharedpreferences" היא שהמשתמש יזין את השם שלו לצורך העניין וכשיחזור לאפליקציה פעם נוספת השם שלו יופיע בגדול ויברך אותו.

*שמירה אל
ראשית, נכניס בתוך ה"onCreate()" שלנו את הקוד הבא: צפו בסרטון ההסבר.

    SharedPreferences sp = getSharedPreferences("Test", 0);
    SharedPreferences.Editor sedt = sp.edit();
בתוך הסוגריים הראשונות יש ביטוי בתוך מרכאות. בו נכתוב את שם האפליקציה שלנו או השם של ממסד הנתונים. עדיף לעשות את זה פשוט ולרשום שם אחד בכל האפליקציה. בכל אקטיביטי חדש, שימו את הקוד הנ"ל למעלה ב"onCreate()".

*משיכה מ-
כעת, לאחר שהמשתמש הכניס שם משתמש וסיסמא לתוך 2 תיבות טקסט נמשוך את הנתונים, בדיוק כפי שעשינו בשיעור הקודם. נא להיזכר.
נשמור גם מספר (putInt) ונשמור גם מלל (putString). חשוב להבין את ההבדל כדי לא לקבל errors.
    sedt.putString("User_Name", value2.getText().toString());
    sedt.putInt("Password", value1.getText().toString());
    sedt.commit();
את הקוד הנ"ל נשים בתוך הonClick של הכפתור שלנו, כך - רק ברגע שיילחצו על הכפתור הנתונים יישמרו. נציג את הנתונים בתוך טקסט שיש לנו:
    TextView txt = (TextView) findViewById(R.id.txt);
    txt.setText(sp.getString("User_Name ", ""));
וזה הכל. כעת, בכל פעם שהמשתמש ייכנס לאפליקציה הוא ייראה את מה שהזין בתיבת הטקסט.





















ישנם שני קבצים עיקריים אותם עליכם להכיר בעת בניית האפליקציה. האחד שמו מניפסט. בתרגום חופשי לעברית: מנשר או מניפולציה. קובץ טקסטי המתאר את האקטיביטיים השונים שיש באפליקצייה, מה לוגו האפליקצייה ועוד הגדרות נלוות.
השני שמו gradle והוא מתאר את הגדרות המשתמש כגון מה שם תיקיית האפליקציה, מה המקס' והמינ' של הSDK של האפליקציה, מהם הקבצים הנלווים לאפליקציה וכו'.

לאט ובזהירות נשתלט על שני הקבצים הללו. הסבר ויזואלי בסרטון.

*המניפסט
בתוך הקובץ הראשון שלנו – המניפסט – נתעסק במה הלקוח ייראה בעת הגלישה באפליקציה. אילו אקטיביטים יש בה? מה העיצוב שלכם ומה הלוגו. וכדומה.
כל אקטיביטי שלכם שלא יהיה רשום שם, פשוט לא יופיע לגולש.
ואף יותר מכך – האפליקציה תקרוס לכם. היא תחפש את האקטיביטי דרך המניפסט ולא תמצא.

ניתן גם להוסיף כמה שורות קוד במניפסט, לדוגמא:
כל שורה כזו היא "הרשאה". נסו לשלב את השורות הללו באפליקציה שלכם ועכשיו תהיה תמיכה באינטרנט. רישמו בגוגל uses-permission ותקבלו רשימה של כל ההרשאות. יש דברים מיוחדים כמו למשל, תמיכה ברטט באפליקציה שלכם ושליטה במצלמה של הלקוח בכל עת שתרצו.
הרשאות יכולות להיות דבר מסוכן לגולשים...

בנוסף, ישנה שורה אחת:
android:theme="@style/Theme.NoTitleBar " נסו למחוק את כל מה שכתוב מאחורי סימן השווה וללחוץ על cntl ורווח יחד. יש לכם עשרות אפשרויות של סגנונות עיצוב שונים וטובים. נסו לבדוק. אנחנו ממליצים על הכתוב למעלה.


*ה-Gradle
הקובץ השני הוא הgradle. הוא אחראי על מאחורי הקלעים. נניח והאפליקצייה שלכם בעלת אנימציות? לא תוכלו להציג אותה בגוגל סטור בפני כל משתמשי האנדרואיד לדורותיהם. מפני האנימציות נכנסו לתוקף רק מגרסא 9.
אם יש לכם אפליקציה פתוחה ואתם רוצים לפתוח אותה לכולם – בקובץ הXML של הGradle נשנה את הכתוב:

    defaultConfig {
    applicationId "com.tal.pirsom"
    minSdkVersion 1
    targetSdkVersion 21
    versionCode 2
    versionName "1.1"
    }
מינימום 1 , מקסימום 21. כך כולם יוכלו להנות מהאפליקציה שלכם.
שימו לב בשנית, הרבה פקודות לא יעבדו והאפליקציה שתתמוך בכל המכשירים תהיה עם ממש מעט פונקציות. ממליץ על גרסא 9 כמינימלית.

מלבד זאת, ניתן גם לכתוב:
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    }
כלומר מהם הקבצים הנלווים לאפליקציה.









מערכת תגובות

רמי : תודה רבה על המדריכים טל
אלון : מרצה מעולה תודה רבה
ליאת : עזרת לי לסיים את התואר !!
דניאל : מעולה
אפי : אחלה מדריך עזר לי
עילאי כהן : איך מורידים את ההפלקציה

שם:
ההודעה:
🔝