Mobile Web Best Practices Eyal Sela [Hebrew]

2,342 views

Published on

ב-24 במרץ 2010 התקיים המפגש השני של פורום מפתחי ה-W3C הישראלי (W3C Developers Forum - W3CDF). המפגש עסק בפיתוח אפליקציות ואתרים למכשירים ניידים (Mobile Web).

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,342
On SlideShare
0
From Embeds
0
Number of Embeds
95
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • persistent client side storage (as available in HTML5 and Google Gears) allows the client to store data locally which can be accessed even when the site is offline.  also, cookies are sent across to the server with every request. If a large amount of data is stored in the cookie this can slow down transaction processing. A client side datastore can be used to only send information when it is relevant rather than with every request.
  • (If supported) client-side storage APIs to store data is better [see Device APIs working group - http://www.w3.org/2009/dap and BONDI, HTML5, Opera Widgets] start-up time Responsiveness Application data stored locally can be displayed immediately when the application is started (without the need for a server roundtrip) allowing start-up latency to be reduced. By making updates locally at first and replicating changes back to the server in the background when connectivity is available, Web applications can continue to operate responsively even when the network signal is unreliable. 3.1.2.2 How to do it Each technology offers a variety of storage facilities that range from simple "key = value" models appropriate for relatively simple, unstructured data, to full SQL Database APIs appropriate for more extensive and structured content. For a good technical discussion of these facilities in the context of HTML5 see Offline Web Applications [ OFFLINE ]. דוגמא
  • A set of attributes that characterizes the capabilities of the access mechanism, the preferences of the user and other aspects of the context into which a web page is to be delivered. http://www.w3.org/TR/di-dco/#characteristics
  • Mobile Web Best Practices Eyal Sela [Hebrew]

    1. 1.
    2. 2. <ul><li>מפגש שני של W3CDF </li></ul><ul><li>תג בטוויטר :  #w3cdf </li></ul><ul><li>מה קורה עכשיו ?? j.mp/noww3c </li></ul><ul><li>המפגש הבא ... </li></ul>http://www.flickr.com/photos/8774945@N07/3859690596/
    3. 3. המפגש הבא - עיצוב וגרפיקה CSS3 , SVG ... <ul><li>מתארח במכללת אפקה </li></ul><ul><li>22 באפריל </li></ul><ul><li>16:30-21:00 </li></ul>
    4. 4. מפגשים נוספים .... <ul><li>[ מחר ] סדנת סקירה ומשוב למסמך Additional Requirements for Bidi in HTML </li></ul><ul><li>[ 7/4 ] מפגש תגובה ל mobile web best practices- ( פירוט בהמשך ) </li></ul><ul><li>[ ? ] Coding session + פרויקטי פיתוח </li></ul>
    5. 5. W3C השנה <ul><li>סידרת מפגשים למפתחים </li></ul><ul><li>קבוצות עניין </li></ul><ul><li>פיתוח אפליקציה ? </li></ul><ul><li>סדנאות תגובה למומחים </li></ul><ul><li>הרצאות אורח ( שלנו , שלכם ) </li></ul><ul><li>תמיכה בפעילות קבוצות / קהילות </li></ul><ul><li>שילוב מומחים בקבוצות עבודה </li></ul><ul><li>עוד ... </li></ul>( ) אבל אין הודעות  חדש
    6. 6. היום <ul><li>16:30 התכנסות </li></ul><ul><li>17:00 מבוא לשוק האינטרנט הסלולרי בישראל - מהביטים עד האגורות , מהבייטים עד הבעיטות -  זאב קוצר , מנכ &quot; ל ,  פסקול טכנולוגיות מתקדמות . </li></ul><ul><li>17:45 הצגת מסמך Mobile Web Application Best Practices של ה - W3C -  - אייל סלע , מנהל פרויקטים - איגוד האינטרנט הישראלי </li></ul><ul><li>18:15 הפסקה </li></ul><ul><li>18:30 אינטרנט נייד , כאוס ותקנים – ניל אוסמן , בעלים  WW3.LTD. </li></ul><ul><li>19:15 טכנולוגיות HTML5 בטלפונים חכמים -  מיכאל וקולנקו , מומחה לטלפונים חכמים ותקשורת ניידת בפס רחב ,  Wave Compass ltd </li></ul><ul><li>20:00 הפסקה </li></ul><ul><li>20:15 הדגמה חיה של בניית אפליקציה לדפדפנים סלולריים מבוססי Webkit -  יובל רז , מהנדס ממשק משתמש ויועץ שימושיות ,  אנסוף קונקט . </li></ul>
    7. 7. Mobile Web Application Best Practices אייל סלע מנהל פרויקטים , איגוד האינטרנט הישראלי ומשרד ה - W3C הישראלי
    8. 8. j.mp/w3cdoc
    9. 9. תוכנית ... <ul><li>מבוא - W3C ואיגוד האינטרנט הישראלי </li></ul><ul><li>אודות ה - mobile web applications best practices </li></ul><ul><li>The Best practices </li></ul>
    10. 10. W3C <ul><li>ארגון בינלאומי </li></ul><ul><li>כ -350 ארגונים </li></ul><ul><li>פורום ניטראלי ליצירת תקני רשת באינטרנט . </li></ul><ul><li>משימה : </li></ul><ul><ul><li>להוביל את הרשת למיצוי הפוטנציאל על ידי פיתוח פרוטוקולים וקווים מנחים שיאפשרו את צמיחתה לטווח ארוך . </li></ul></ul>
    11. 11. <ul><li>אודות ה - Mobile Web Application Best Practices </li></ul>
    12. 12. <ul><li>No feature has been identified as at risk </li></ul><ul><li>advance to Proposed Recommendation 15 April 2010 . </li></ul>You are here j.mp/w3crec
    13. 13. סדנת סקירה ומשוב <ul><li>7 באפריל </li></ul><ul><li>משרדי איגוד האינטרנט הישראלי ( פתח תקווה ) </li></ul><ul><li>מ -17:00 </li></ul><ul><li>נסו אותו מראש ....! חובה להכיר , שם רק נגיב ... </li></ul>j.mp/w3crevu
    14. 14. j.mp/w3cmobrp
    15. 15. Web Application a Web page (XHTML + CSS) or collection of Web pages delivered over HTTP which use server-side or client-side processing (e.g. JavaScript) to provide an &quot;application-like&quot; experience within a Web browser .
    16. 16. הבדל מאתר רגיל ( BP1 ) include locally executable elements of interactivity and persistent state. bit.ly/w3cmbp validator.w3.org/ mobile / <ul><ul><li>nextbus.com/webkit / </li></ul></ul>
    17. 17. <ul><li>תצוגה </li></ul><ul><li>הזנת תוכן </li></ul><ul><li>רוחב פס ועלות </li></ul><ul><li>מטרות המשתמש </li></ul><ul><li>מגבלות המכשיר </li></ul>מגבלות והבדלים – מכשירים ניידים לעומת שולחניים bit.ly/w3cmbp
    18. 18. Best practices
    19. 19. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>( סה &quot; כ 35)
    20. 20. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    21. 21. <ul><li>השתמשו בטכנולוגיות ושיטות מתאימות ל אחסון נתוני האפליקציה </li></ul>
    22. 22. המעיטו את השימוש בעוגיות <ul><li>מה ? </li></ul><ul><li>נשלחות לשרת בכל בקשה </li></ul><ul><li>יתכן ולא יהיה פעילות במכשיר </li></ul><ul><li>איך ? </li></ul><ul><li>בנו אפליקציה שיכולה להשאר פעילה גם ללא עוגיות </li></ul><ul><li>( למשל עם URI decoration ) </li></ul>Image by: D Sharon Pruitt
    23. 23. השתמשו בטכנולוגיות המתאימות לאחסון מידע בצד הלקוח <ul><li>מה ? </li></ul><ul><li>עדיף להשתמש במנגנונים בצד לקוח לאחסון מידע , בעיקר בכמויות גדולות . </li></ul><ul><li>( מועיל ב start-up time , Responsiveness ) </li></ul><ul><li>איך ? </li></ul><ul><li>BONDI </li></ul><ul><li>HTML5 - Offline - j.mp/w3coff </li></ul><ul><li>Opera Widgets </li></ul>by  Remy Sharp remysharp.com/demo/rubiks/ | -
    24. 24. שכפלו מידע לשרת במידת הצורך <ul><li>מה ? </li></ul><ul><li>תצוגה אחידה במכשירים שונים </li></ul><ul><li>מגבה למקרה של אובן המכשיר </li></ul><ul><li>( לא צריך לשכפל למשל העדפות תצוגה של מכשיר ספציפי ) </li></ul><ul><li>j.mp/mozoff </li></ul><ul><li>איך ? </li></ul><ul><li>טכנולוגיות לאחסון מידע צד לקוח מספקת גם בדיקת קישוריות . </li></ul><ul><li>דוגמא </li></ul>j.mp/mozoff
    25. 25. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    26. 26. <ul><li>ביטחון מידע ופרטיות – השתמשו במידע אמין והגנו על פרטיות המשתמש </li></ul>
    27. 27. Do not Execute Unescaped or Untrusted JSON data <ul><li>RFC4627 for details </li></ul>Image by: D Sharon Pruitt direct execution of a datafeed that contains unescaped user-generated data = security risk   A JSON parser will accept only valid JSON, preventing potentially malicious code from running.
    28. 28. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    29. 29. <ul><li>מדיה , פרטי קשר ו - calendar , פירוט שיחות , מידע על המכשיר , מיקום (!), חיבור לרשת </li></ul><ul><li>הקפידו על ההמלצות הבאות אם הדפדפן אינו מספק אותן </li></ul>התייחסו יפה למידע רגיש ...
    30. 30. הודיעו למשתמש על גישה אוטומטית לרשת <ul><li>מה ? </li></ul><ul><li>שימוש ברשת מרוקן את הסוללה </li></ul><ul><li>עולה כסף ... </li></ul><ul><li>איך ? </li></ul><ul><li>אייקון המודיע על פעילות ברגע </li></ul><ul><li>הודיעו על שימוש רב ברשת ( בחיבור ראשון , בהרשמה או בדפי העזרה ) </li></ul><ul><li>ספקו מידע על אופי החיבור ( כמה זמן , תדירות , סה &quot; כ שימוש ) </li></ul><ul><li>. </li></ul>
    31. 31. ספק אמצעים לשליטה בחיבור אוטומטי לרשת <ul><li>מה ? </li></ul><ul><li>אפשר למשתמש למנוע חיבור אוטומטי לרשת </li></ul><ul><li>( כאשר זה מבוטל – הציגו הודעת חיבור מעת לעת .) </li></ul><ul><li>אפשרי – </li></ul><ul><li>אפשר למשמש לשלוט במועדי החיבור או בפעילויות אשר יכולות להתחבר . </li></ul>Image by: Jeff Sonstein
    32. 32. הודיעו למשתמש על שימוש במידע על המכשיר או פרטים אישיים <ul><li>מה ? </li></ul><ul><li>בעת כניסה ראשונה לשירות או בגישה ראשונה למידע . </li></ul><ul><li>איך ? </li></ul><ul><li>לרוב ל - API יש בקשת רשות מובנת </li></ul><ul><li>( recover gracefully ; confirmation dialog ). </li></ul>MapQuest.com
    33. 33. אפשרו Sign-in אוטומטי <ul><li>מה ? </li></ul><ul><li>כי יותר קשה להזין תוכן .... </li></ul><ul><li>איך ? </li></ul><ul><li>בעוגיות , או local storage </li></ul><ul><li>( לא לשכוח לשים לינק ל - log out ) </li></ul>
    34. 34. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    35. 35. <ul><li>זיכרון </li></ul><ul><li>עיבוד </li></ul><ul><li>רוחב פס </li></ul><ul><li>מוגבלים יותר במכשירים ניידים </li></ul>אל תכבידו על משאבי המכשיר
    36. 36. מזערו את גודל האפליקציה והנתונים <ul><li>מה ? </li></ul><ul><li>תרד יותר מהר </li></ul><ul><li>תפעל יותר טוב </li></ul><ul><li>איך ? </li></ul><ul><li>הקטינו CSS , HTML ו - JavaScript </li></ul><ul><li>(removal of white space and comments ; shorter tokens (variables, method names, selector names) </li></ul>See  http://compressorrater.thruhere.net
    37. 37. המנעו מ - Redirects <ul><li>מה ? </li></ul><ul><li>לרוב נעשה שימוש ב HTTP 3xx או HTML meta refresh להעברת מידע </li></ul><ul><li>(e.g. account authentication) </li></ul><ul><li>איך ? </li></ul><ul><li>פשוט נסו להמנע מהן . </li></ul><ul><li>אם צריך יותר משתיים , אפשר להציג דף מעבר ) בכדי שהמשתמש ידע ש ' זה טעון ' ( </li></ul>
    38. 38. Optimize Network Requests <ul><li>מה ? </li></ul><ul><li>עדיף לבצע בקשות גדולות לשרת אך מועטות יותר ( מאשר הרבה בקשות קטנות ) </li></ul><ul><li>איך ? </li></ul><ul><li>קיבוץ בקשות </li></ul><ul><li>תעדוף בקשות </li></ul><ul><li>פעילות בהתאם ל רמת הקישוריות </li></ul>
    39. 39. צמצמו שימוש במקורות חיצוניים <ul><li>מה ? </li></ul><ul><li>style sheets, scripts, image - each of which requires an HTTP request </li></ul><ul><li>איך ? </li></ul><ul><li>CSS ו - JavaScript כל אחד בקובץ אחד בלבד </li></ul><ul><li>OR </li></ul><ul><li>או שהם ישולבו לפני שהעמוד מוגש ללקוח </li></ul>
    40. 40. אחד תמונות (Sprites) <ul><li>איך ? </li></ul><ul><li>similar sizes and color palettes . </li></ul><ul><li>That do not change often . </li></ul><ul><li>use CSS positioning and clipping . </li></ul><ul><li>דוגמא </li></ul><ul><li>www.yahoo.com </li></ul>Image by: Kriplozoik
    41. 41. Keep DOM Size Reasonable <ul><li>איך ? </li></ul><ul><li>למשל בעזרת pagination </li></ul>
    42. 42. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    43. 43. <ul><li>בגלל מורכבות רבה יותר בשימוש במכשירים ניידים – חשוב לשפר את חווית המשמש </li></ul><ul><ul><ul><li>Latency </li></ul></ul></ul><ul><ul><ul><li>interaction method </li></ul></ul></ul><ul><ul><ul><li>data consistency </li></ul></ul></ul>
    44. 44. להתחיל צ ' יק צ ' ק Optimize For Application Start-up Time <ul><li>איך ? </li></ul><ul><li>Use Offline Technology (e.g. AppCache) – Resources (HTML, JavaScript, CSS) stored locally. </li></ul><ul><li>Use Local Storage : store a snapshot of last state - display it immediately on start-up </li></ul><ul><li>Minimize Number of Local Storage Queries before the first view can be displayed. </li></ul>http://www.flickr.com/photos/66475767@N00/4333416050/
    45. 45. Minimize Perceived Latency <ul><li>איך ? </li></ul><ul><li>Incremental Rendering : Place JavaScript at the bottom of the page+ configure the page so that any useful information that might be available is viewable while the main content of the application is still loading. </li></ul><ul><li>Keep the User Informed of Activity (progress bars) </li></ul><ul><li>Avoid Page Reloads ( To reflect changes in state or show different views) </li></ul><ul><li>Preload Probable Next Views </li></ul>MapQuest.com
    46. 46. Design for Multiple Interaction Methods <ul><li>מה ? </li></ul><ul><li>שלושה סוגי אינטראקציה עיקריים </li></ul><ul><li>עדיף להתאים לשיטת מכשיר היעד . אם אי אפשר – להתאים לכולם . </li></ul><ul><li>איך ? </li></ul><ul><li>Focus Based: (focus &quot;jumps&quot; from link to link) </li></ul><ul><li>. </li></ul><ul><li>Pointer Based: ( Key-based navigation + pointer ) </li></ul><ul><li>Selectable elements that are associated with each other need to be close </li></ul><ul><li>Selectable elements need to be l arge enough (pointer often moves in steps) </li></ul><ul><li>Selectable elements should have rollovers </li></ul><ul><li>Touch Based: (finger ) </li></ul><ul><li>Selectable elements may be widely spaced since the user can select them directly </li></ul><ul><li>Selectable elements must be large enough to be easily selected (list items - at least 30px) </li></ul>Image by: Dennis Bournique
    47. 47. השתמש במספרי טלפון ב - &quot;Click-to-Call&quot; <ul><li>איך </li></ul><ul><li><a href=&quot;tel:[PHONE-NUMBER]&quot;>[PHONE-NUMBER]</a> </li></ul><ul><li>entered using the full international prefix </li></ul><ul><li>RFC3966 </li></ul>  my.springpadit.com
    48. 48. Ensure Paragraph Text Flows <ul><li>מה ? </li></ul><ul><li>מנע גלילה אנכית </li></ul><ul><li>ואפשר קריאה בשינוי אוריאנטציה </li></ul><ul><li>איך ? </li></ul><ul><li>לא להשתמש ביחידות מוחלטות / פיקסלים </li></ul><ul><li>כן להשתמש ביחידות יחסיות ל containers - </li></ul>Image by: curiouslee
    49. 49. Ensure Consistency Of State Between Devices <ul><li>מה ? </li></ul><ul><li>הקפידו על עקיבות באפליקציה בין מכשירים שונים </li></ul><ul><li>Credentials </li></ul><ul><li>preferences </li></ul><ul><li>Data </li></ul><ul><li>איך ? </li></ul><ul><li>שימורו על השרת מידע שאינו רלוונטי רק למכשיר הספציפי </li></ul>http://www.flickr.com/photos/osde-info/4336196538/sizes/o/
    50. 50. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    51. 51. התאימו ל - Delivery Context שונים צרו אפליקציה בעלת יכולת זיהוי ההקשר ( כגון יכולות המכשיר ) והסתגלות להן . ( התאמת תוכן , ניווט , מבנה עמוד ...)
    52. 52. Prefer Server-Side Detection Where Possible <ul><li>HTTP request header: Accept; User-Agent; X-Wap-Profile </li></ul>Use Client-Side Capability Detection Where Necessary <ul><li>JavaScript:   (e.g. if (some_api_exists) { ...). CSS Media Types / Queries </li></ul>Use Device Classification to Simplify Content Adaptation Class 1: Basic XHTML support, no or very basic scripting. Class 2: Full AJAX and JavaScript support. Class 3: Advanced device APIs Class 1: Pointer Based. Class 2: Touch Based.
    53. 53. אפשר למשתמש לבחור את התצוגה <ul><li>מה ? </li></ul><ul><li>אפשר למשתמש לשנות את סוג התצוגה </li></ul><ul><li>כברירת מחדל ספק את ה - UI המתאים ביותר </li></ul><ul><li>אבל זכור את העדפות המשתמש ! </li></ul>
    54. 54. <ul><ul><ul><li>נתוני האפליקציה (3) </li></ul></ul></ul><ul><ul><ul><li>ביטחון מידע ופרטיות (1) </li></ul></ul></ul><ul><ul><ul><li>יידוע המשתמש ושליטתו באפליקציה (4) </li></ul></ul></ul><ul><ul><ul><li>שימוש מוגבל במשאבים (11) </li></ul></ul></ul><ul><ul><ul><li>חווית משתמש (10) </li></ul></ul></ul><ul><ul><ul><li>התאמה ל - Delivery Context (5) </li></ul></ul></ul><ul><ul><ul><li>שיקולים נוספים (1) </li></ul></ul></ul>
    55. 55. Consider Use of Canvas Element or SVG For Dynamic Graphics <ul><li>מה ? </li></ul><ul><li>canvas </li></ul><ul><li>מאפשר לצייר גרפיקה פשוטה באמצעות JavaScript </li></ul>http://www.mozilla.com/en-US/firefox/stats/ SVG שפת XML להגדרת אלמנטים של גרפיקה וקטורית המתווספים ל - DOM , וניתנים לשינוי בעזרת JavaScript
    56. 56. <ul><li>כלים נוספים </li></ul>
    57. 57. <ul><li>Web Compatibility Test for Mobile Browsers - version 2 - j.mp/w3ctmb </li></ul><ul><li>Mobile Web Best Practices (MWBP) Flipcards j.mp/w3cfcc </li></ul>
    58. 58. <ul><li>הירשמו לידיעון </li></ul><ul><li>צרו קשר </li></ul>@isociltech @eyalsela תודה  קישור זמני למצגות - j.mp/w3cmpr

    ×