מתיחת תמונות
רוני רוזן |
אוק 24, 2010
רציתי לחלוק איתכם טיפ קטן ומאוד יעיל שלא כולם מכירים.
לעיתים אנו נדרשים למתוח תמונות תוך שמירה על הקצוות שלהם בגודל המקורי. בקוקא הדבר מאד קל.
חפש באתר:
רוני רוזן |
אוק 24, 2010
רציתי לחלוק איתכם טיפ קטן ומאוד יעיל שלא כולם מכירים.
לעיתים אנו נדרשים למתוח תמונות תוך שמירה על הקצוות שלהם בגודל המקורי. בקוקא הדבר מאד קל.
גיא שביב |
ספט 27, 2010
כל מפתח שנדרש להפיץ גרסאות אד–הוק למשל למשתמשי בטא יודע שהתהליך מסורבל. נדרש לאסוף קודם את המזהה של מכשירי המשתמשים, לתת להם קובץ IPA וקובץ mobileprovision שאותם הם צריכים להתקין דרך אייטיונס על המחשב שלהם, אבל רק על המחשב שמשמש לסינכרון המכשיר. ולהתקין על ידי סינכרון המכשיר. אצל משתמשי PC התהליך לפעמים משתבך יותר כש–Windows מחליט לפתוח את קובץ ה–IPA כאילו זה קובץ ZIP. מערכת הפעלה 4 מביאה שיפור מסוים לתהליך, עדיין יש לאסוף את מזהה המכשיר, אבל ניתן להתקין את התוכנה דרך הרשת ואין צורך לשלוח את המשתמשים לאייטיונס.
גיא שביב |
ספט 19, 2010
פעמים רבות אנו צריכים ליצור תמונה זעירה מתמונה גדולה יותר (thumbnail). הדרך המיידית ליצירת תמונה זעירה הינה קריאת התמונה לזכרון וציור שלה בתוך מפת סיביות Bitmap בהקטנה. הבעייה שדרך זו הינה גם איטית וגם צורכת הרבה זכרון שכן יש לקרוא את כל התמונה לזכרון. מערכת הפעלה 4 הביאה לנו את הספריה ImageIO אשר מאפשרת לעשות פעולה זו ביעילות רבה יותר.
רוני רוזן |
ספט 12, 2010
גם אם אף פעם לא יצא לכם להשתמש ב-UIPageControl, אתם בוודאי מכירים את אפקט הדיפדוף שנפוץ מאוד באפליקציות רבות באייפון: למשל בדפדוף בין הדפים הפתוחים השונים ב-Safari ואפילו הדפדוף בין העמודים השונים של האייקונים של האפליקציות בעמוד הראשי של המכשיר. מסתבר שיש הבדל גדול במימוש של שתי הדוגמאות הללו. דפדוף של מסך שלם (כמו בעמוד הראשי של האייפון) ניתן למימוש בקלות על ידי שימוש ב-UIScrollView ובמאפיין ה-pagingEnabled שלו (וכמובן שגם ב-UIPageController על מנת להציג את הנקודות הנחמדות בתחתית המסך שמראות לנו איפה אנחנו נמצאים עכשיו). אבל לחקות את הדפדוף של הדפים הפתוחים בספארי זו משימה קצת יותר מסובכת.
גיא שביב |
יונ 6, 2010
מכיוון שעל מערכת האייפון אין איסוף אשפה אוטומטי, בעיות של ניהול זכרון הן מהבעיות שיש להתמודד איתן בפיתוח תוכנה למערכת האייפון ואלה הבעיות שבדרך כלל יותר קשה לדבג משום שהן על פי רוב מגלות את עצמן לא במקום ששם הם נגרמו.
קוקה ואקסקוד מציעים מספר כלים לדיבוג בעיות זכרון, בין אם זה המנתה הסטאטי שיודע למצוא מספר רב של מקרים מניתוח סטאטי של הקוד (את המנתח הסטאטי סקרתי בכתבה זו) או הרצת הקוד באמצעות אינסטרומנטס. אולם היום אני רוצה לדבר על כלי ידוע פחות שמאפשר דיבוג של שיחרור כפול. זהו כלי שקוקה טאץ' ירשה מאחיה הגדול קוקה על המק.
Amos Elmaliah |
מרץ 23, 2010
המאמר מציג כיצד ניתן לכתוב אלמנט ממשק מודולרי בצורה של קטגוריה באובג'קטיב סי כך שהוספה פשוטה של הקוד לפרויקט תגרום ל–Interface Builder לזהות את המודול ולאפשר קישוריות אליו. כמו כן המאמר מציג כיצד ניתן להציג אלמנט תלוי שירות ברשת.
גיא שביב |
פבר 16, 2010
לפעמים אנו רוצים לציר UIView לתוך UIImage על מנת לקבל תמונה של החלון. הדבר מאוד פשוט, אראה כיצד.
גיא שביב |
ינו 13, 2010
אחד הדברים שאני אוהב באובג'קטיב סי ואקסקוד לעומת תיכנות בסביבות אחרות כמו סי–פלוס–פלוס על ויזואל סטודיו הוא שבדרך כלל, הערות קומפילציה הן הערות המציינות בעיות אמיתיות אליהן כדאי להתייחס בעוד שבסי פלוס פלוס רבות מן ההערות המתקבלות הן הערות מיותרות אשר אינן באמת מצדיקות התייחסות. כאן יש בעיה קטנה: אחת הפקודות החביבות עלי באקסקוד היא "בנה ורוץ" (Build & Go) אשר מקמפלת את הקוד, בונה את האפליקציה ומריצה אותה. למרבה הצער, פקודה זו איננה עוצרת אם הופיעו הערות קומפילציה והאפליקציה תרוץ בכל מקרה (אלא אם היו שגיאות) דבר שאיננו רצוי משום שיש סיכוי גבוה שההערות מציינות בעיות אמיתיות אשר יש לתקן לפני שמריצים את הקוד.
iLoop |
דצמ 27, 2009 טיפ קצרצר. לעיתים אנו רוצים לדעת לאיזה שפה המשתמש כיוון את הממשק שלו (הדבר נכון גם לגבי האייפון וגם לגבי המק). ידיעת השפה יכולה להשפיע למשל על האופן בו אנחנו נעצב תאים של טבלאות או שאנחנו מעונינים להציג מידע שונה בהתאם לשפה (מעבר למה שמתאפשר על ידי הקובץ Localizable.strings). שפת המשתמש שמורה בעדיפויות וניתן לבדוק מהי על ידי הפקודה הבאה:
NSString* lang = [[NSUserDefaults standardUserDefaults] valueForKey:@"AppleLocale"];
אם שפת הממשק היא עברית, נקבל "he_IL’. עבור אנגלית נקבל "en_US". עבור שפות ממשק אחרות אתם מוזמנים לבדוק את הערך המתקבל. טריק נוסף, ניתן לדעת איזה מקלדות המשתמש הפעיל על ידי בדיקת המפתח "AppleKeyboards" בעדיפויות. נקבל חזרה מערך עם המקלדות המופעלות.
גיא שביב |
דצמ 16, 2009
מי שמתכנת באובגקטיב–סי מכיר את זה. פעולה שצריך לחזור עליה פעם אחר פעם. מגדירים משתנה במחלקה ורוצים לגשת אליו עם תכונה (property). יש להגדיר את התכונה, לעבור לקובץ המימוש, להגדיר לקומפיילר לממש את התכונה, ולזכור לשחרר את המשתנה במתודה dealloc. לפעמים נדמה שחצי מהזמן שאנחנו מבלים בתכנות אנו מבלים בביצוע פעולה מחזורית זו. ניתן לחסוך את כל זה ולתת לאקסקוד לבצע זאת באופן אוטומטי ולהשאיר לנו את מלאכת התיכנות האמיתית.