PracticU

Google Finance API

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Google Finance API
מילון מושגים:
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
Activity - ב-Android, רכיב שמייצג מסך יחיד של האפליקציה שאיתו המשתמש מתקשר.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
חריגה - מצב שגיאה שמתרחש בזמן ריצת התוכנית ומפסיק את המהלך הרגיל, אלא אם הקוד תופס ומטפל בו.

Google Finance API
רוב ה-APIs באינטרנט מחזירים JSON ולא טקסט פשוט. ההרצאה מראה איך להביא מידע על מניה מ-API של Google Finance, לפענח את ה-JSON ולהציג את הנתונים באפליקציה.
השלבים העיקריים
1. בדיקת ה-API בדפדפן: הכתובת היא http://finance.google.com/finance/info עם הפרמטר q, בפורמט בורסה, נקודותיים וסימול המניה, למשל NASDAQ:FB לפייסבוק. התשובה מתחילה בסוגריים מרובעים, כלומר מערך, ובתוכו אובייקט.
2. השדות הרלוונטיים: t הוא סימול המניה, l המחיר הנוכחי ו-elt זמן העדכון האחרון. ישנם שדות נוספים כמו l_fix, שלא נעשה בהם שימוש.
3. האפליקציה: EditText לסימול המניה, כפתור ו-TextView להצגה. משתמשים שוב ב-TextDownloader מהסרטונים הקודמים, יחד עם ProgressDialog. יש הרשאת אינטרנט ב-manifest, וה-Activity מממשת את ה-Callbacks. בלחיצה על הכפתור בונים את הקישור, מחברים לסוף את הסימול שהוקלד וקוראים ל-execute. ב-onAboutToBegin מנקים את התצוגה הקודמת.
4. מחלקה Stock: מכילה symbol, value ו-time, עם getters ו-setters ו-toString שמחזיר את הנתונים בשורות נפרדות.
5. Constructor שמקבל JSON: מקבל מחרוזת JSON ויוצר JSONObject ממנה. מוציאים getString של t לסימול, של l כ-Double לערך ושל elt לזמן. הוא זורק חריגה, ולכן מוסיפים אותה לחתימה, והקורא מטפל בה.
6. ב-onSuccess: בונים new Stock(result) ומציגים stock.toString(). בחריגה מציגים ex.getMessage() ב-TextView.
7. בדיקה: FB מחזיר סימול וערך שמתאימים לתשובה בדפדפן, ושם באותיות קטנות עובד גם. גם GOOG, MSFT ו-AAPL עובדים.
טעויות נפוצות
סימול שאינו קיים (בהדגמה "בלה בלה") גורם לשרת להחזיר קוד 400, Bad Request, ולא 200. ה-downloader מחזיר null, onError מתבצעת ומוצגת הודעת שגיאה, והאפליקציה לא קורסת. אפשר להציג למשתמש הודעה ברורה יותר, ולהחליף את ה-EditText ב-Spinner עם רשימת מניות, כדי שלא יצטרך להכיר את הסימולים.
כך אפשר לקבל JSON מ-API מרוחק, לפענח אותו למחלקה מתאימה ולהציג את הנתונים.
השיעור הבא בקורס: Download Image

פרקי ההרצאה: Google Finance API

  1. 00:00

    למה APIs מחזירים מידע ב-JSON

  2. 01:00

    מבנה הקריאה ל-Google Finance

  3. 01:58

    קריאת מבנה ה-JSON של המניה

  4. 02:53

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

  5. 04:31

    בניית הלינק עם סמל המניה

  6. 05:56

    טיפול ב-onSuccess וניקוי התצוגה

  7. 06:37

    מחלקת Stock לתיאור המידע

תמלול ההרצאה: Google Finance API

הטקסט המלא של הדקות הראשונות בהרצאה «Google Finance API» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

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

  2. 00:29

    כי ראינו כשלמדנו על קבצים שJSON זה פורמט שמאפשר להגדיר מידע הוא בעצם משמש הרבה יותר מפורמט XML לשליחת מידע וקבלת מידע בעולם האינטרנט API משתמשים בקבלה של JSON ובהחזרה של JSON הרבה פעמים ולכן חשוב שנראה דוגמה אחת איך אנחנו יכולים לקבל מידע מ-API מרוחק שנמצא בפורמט JSON ואיך אנחנו שולפים ממנו את המידע הפנימי ומציגים אותו

  3. 01:03

    אנחנו הולכים להשתמש עם API של Google Finance בכדי לקבל מידע לגבי מניות בזמן real time כלומר מה המנייה שווה עכשיו או לפחות ב-24 שעות האחרונות ה-API שלנו הוא http financegoogle.com slash finance slash info ואז אנחנו צריכים לתת לו פרמטר, הפרמטר שאנחנו נותנים לו קודם כל

  4. 01:35

    זה Q שווה וזה בעצם איזה בורסה אנחנו רוצים וזה יהיה בוא נניח לדוגמה NASDAQ ואז איזה מנייה אנחנו רוצים להביא אז זה יהיה נקודותיים ואת המנייה שאנחנו רוצים לדוגמה FB זה פייסבוק אז בואו נלחץ על Enter ואנחנו מקבלים בחזרה מידע ג'ייסוני ושימו לב שבגלל שאנחנו מקבלים קודם כל סוגריים מרובעים זה אומר שאנחנו מקבלים מערך

  5. 02:08

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

  6. 02:33

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

  7. 02:53

    הנה אנחנו רואים את הזמן הזה. אז אנחנו רוצים להתעסק עם שלושת הדברים האלה באפליקציה שלנו ולהביא את כל ה-JSON ולשלוף ממנו את מה שאנחנו רוצים ולהציג. אז בואו נראה איך אנחנו יכולים לבצע את זה אז יש לנו פה אפליקציה שיש בה כבר ממשק מוכן ובממשק יש לנו את תיבת Edit Text בכדי להכניס את ה-stock symbol זה הקוד של המנייה והיה לדוגמה ה-FB שמקודם הכנסנו עבור פייסבוק

  8. 03:23

    יש לנו כאן לחצן שמאפשר ללחוץ עליו ולהביא את המנייה ו-Text View בכדי להציג את הפרטים שלה מה יש לנו בג'אבה קוד? בג'אבה קוד יש לנו כאן את המשתנים של ה-edit text וה-text view, פה איתרנו אותם ב-on create, יש לנו כאן progress dialogue, כמו שהיינו מקודם בסרטונים הקודמים, כבר אנחנו ירשנו את

  9. 03:51

    callbacks שנמצא בטקסט דאונלורדר, טקסט דאונלורדר מצורף לפרויקט, יש לנו כמובן במאניפסט גם הרשאת אינטרנט, אז הכל מוכן ובשלושת הפונקציות כבר יש לנו כאן את הפרוגרס דיאלוג שפשוט ב-on about to begin רק מוצגת ב-on success אנחנו מורידים אותה את הדיאלוג ב-on error מורידים אותה ומציגים הודעת שגיאה

  10. 04:22

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

  11. 05:00

    הסימבול של הסטוק, הסמל של המנייה עצמה, וזה כמובן מתקבל מהedit text symbol, בואו ניגש לגט text to string, והנה היוזר מכניס לנו פייסבוק או גוגל או כל סמל שהוא רוצה, טקסט downloader נבנה אובייקט חדש, נגיד לו שהmain activity מממשת את האינטרפייס שלו, ואנחנו רוצים לקרוא לאקסקיוט ולשלוח לינק, אז בואו נבנה פה string link, והלינק ניקח אותו כבר מהטר הזה, ctrl c, ונשים אותו פה, ctrl v, ובמקום fb נשרשר את הסימבול,

  12. 05:50

    ועכשיו אנחנו יכולים לגשת ולשלוח את הלינק המלא שמכיל גם את הבורסה וגם את המנייה בבורסה שאנחנו רוצים. כאן אנחנו כבר יכולים לגשת ולבנות את ה-on success.

  13. 06:07

    on success, מה שאנחנו רוצים לעשות זה להציג את המידע. דרך אגב בואו ב-on about to begin נעשה set text לסימבול. לא בעצם לסימבול, אנחנו רוצים לעשות לטקסט view value ולנקות אותו מהמנייה הקודמת שהייתה בו.

  14. 06:37

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

  15. 06:54

    ובגלל שהמידע שאנחנו מביאים כרגע זה מידע של מניות ואנחנו מביאים מידע של מניה אחת אז בואו נבנה מחלקה שפשוט נקראת stock ומתארת את הדאטה של מניה אחת ויש לנו כאן את הסימבול של המניה, את הסמל שלה, את המספרותיות שמתארות את המניה יש לנו כאן את הvalue שלה ובואו נגדיר עוד איזשהו string של הדאטה שהמניה לאחרונה עודכנה בואו נבנה כאן גתרים וסטרים,

  16. 07:31

    Alt-Insert, בואו ניקח Geters and Setters ונבנה לכולם, ובואו ניגש פה למטה, Alt-Enter, אני

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Zen Wisdom

ההרצאה הבאה: Download Image

הרצאות קשורות מקורסים אחרים

  • הסבר על Google Map - API
  • Linux VM on Google Cloud
  • תרגול על Java API
  • הסבר על מה זה ממשק - API

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון