התקנת פייתון על הסלולרי שלי - למה זה טוב?

פייתון כאמצעי לחידוד הפונקציונליות של האפליקציות שלי
 מאת: דור עמית

שפת פייתון (PYTHON) היא שפת תכנות דינמית רבת עוצמה המשלבת יכולות של תכנות מונחה עצמים, תכנות פרוצדורלי ופונקציונלי ומעבר להיותה קלה מאוד ללמידה והבנה, יש לה עוד יתרונות רבים, ביניהם – מאגר עצום של קוד, דוגמאות קוד ומימושים כמעט לכל נישת פיתוח והיכולת של השפה לעבוד במגוון רחב של מערכות הפעלה והתקני קצה (CROSS-PLATFORM).

בכתבה הבאה, נלמד איך להתקין ולהשתמש בפייתון מעל גבי התקנים סלולריים עם מערכות הפעלה ANDROID\IOS (המבוססות LINUX) ומה הערך המוסף והתרחישים שעבורם מימוש מהסוג הזה יכול להיות רלוונטי.

אז למה לעזאזל אני צריך פייתון במכשיר הסלולרי שלי??

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

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

במקרים כאלה, אחד הפתרונות האפשריים הוא לפתח בעצמינו את הפונקציונליות הנדרשת כאפליקציה עצמאית או כהרחבה לאפליקציה קיימת.

פיתוח למכשירי ANDROID מבוסס על שפת JAVA/KOTLIN ו IOS  על OBJECTIVE-C ועקומת הלמידה הדרושה על מנת ללמוד ולהתמקצע בשפת תכנות נוספת לא תמיד פשוטה ובמידה שלא נעשים בה שימושים נוספים – זה מחייב את המתכנת לפתח קוד ייעודי לאפליקציה שלו.

במידה ולמדתם והתמקצעתם בשפת פייתון וכתבתם שגרות קוד (מודולים) המיועדים לממשקים ומערכות הפעלה אחרות – במקרים רבים הסבה והטמעה שלהם בסביבת במובייל תהיה מהירה יותר מכתיבת הקוד מ 0.

אוקיי אז הבנתי את הצורך בגדול – אפשר דוגמאות איך זה עוזר לי?

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

הדגומה שלנו תהיה הרחבת פונקציונליות של אפליקציה בשם  TASKER

https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en

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

דוגמה: להדליק/לכבות באופן אוטומטי את ה WIFI  ואו שירותים אחרים במכשיר הסלולר כאשר נכנסים או יוצאים ממיקום מסוים על פי המידע שמגיע מה GPS.

הגדרת הלוגיקה ביישום TASKER מאפשרת להגדיר התניות פשוטות כגון  “אם קורהX  וגם קורה Y אז בצע Z” מה שמכונה בז’רגון של עולם הפיתוח IF STATEMENT

(יש מכשירים שתומכים באופן טבעי ביכולת כזו אבל רמת השליטה במקרה שלנו תהיה גבוהה יותר).

TASKER מאפשרת לנו גם לארוז בצורה פשוטה את הפונקציונליות הרצויה בקובץ APK שהוא פורמט קבצי האפליקציות של מערכת ההפעלה ANDROID ולהפיץ את האפליקציה שלנו לאנשים/מכשירים נוספים.

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

למשל הגדרת תנאי מהסוג הבא: “כל עוד ה GPS  עובד וגם לא יצאנו מאזור מסוים, בצע 3 פעמים, שליחת SMS לנמענים A B  ו C ולכל נמען, צרף הודעה אישית על פי הפרטים שלו באנשי הקשר”.

היתרונות העיקריים שאפשר לקבל משימוש בשפת פייתון על מכשיר סלולרי הן:

אוטומציה – שהם תזמון פעולות ע”פ לוגיקה ידועה מראש. למשל, אם יש לנו רשימת אנשי קשר ענקית ואנחנו רוצים לבצע שינוי גורף באחד הפרטים. מעבר על כל קונטקט יכול לקחת זמן רב, ולא כל אפליקציית חייגן (DIALER) מאפשרת שינוי גורף של כל פרט. עם QPYTHON זה אפשרי ובקלות.

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

כתיבת קוד כזה אמנם אפשרית (למשל עם ספריית TESSERACT של גוגל) אבל QPYTHON מאפשר לנו לחסוך אפילו את המאמץ הזה ולהשתמש בשירותי ענן, דוגמת COGNITIVE SERVICES של מיקרוסופט אז’ור.

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

אפשרות שטוויטר לכשעצמה לא מאפשרת.

 

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


אז איך מתחילים?

אחת הדרכים להשתמש בפייתון במכשיר המובייל שלנו, היא להתקין אפליקציה שנקראת QPYTHON. קיימת גרסה למכשירי ANDROID  ו IOS .

https://play.google.com/store/apps/details?id=org.qpython.qpy3&hl=en

לאחר ההתקנה, נפתח את האפליקציה ונקבל את המסך הבא:

 

 

 

 

 

 

 

 

 

 

 

 

נפעיל קוד לדוגמה, שיקריא לנו את התאריך והשעה.

ניכנס ל PROGRAMS

 

 

 

 

 

 

 

 

 

 

 

 

וכפי שנוכל לראות קיימים כבר לאחר ההתקנה במכשיר דוגמאות קוד רבות, למשל תוכנת צ’ט מבוססת BLUETOOTH שמאפשרת לשלוח/לקבל מסרוני טקסט ללא צורך באינטרנט או תשתית סלולרית.

נפתח את היישום שנקרא SAY_TIME.PY

 

 

 

 

 

 

 

 

 

 

 

 

זה כל הקוד הנדרש ע”מ להקריא את התאריך והשעה.

 

 

 

 

 

 

 

כדי להפעיל אותו – נלחץ על פליי , הסימון של המשולש בתמונה.

 

 

 

 

 

 

 

 

 

 

 

 

וסיימנו, בהצלחה!



נכתב על ידי דור עמית – מומחה לסייבר ואבטחת מידע. מרצה בקורס מבוא לתכנות עם פייתון. לפרטים>> bit.ly/2OxRNUz