August 21, 2009

Flashmatticomponents – Open Source Flex/AIR Library by Flashmattic

An English translation is available for this post...

כותרת מפוצצת, הא? כן... אבל יש סיבה.
שלא תגידו שסחבק בא עם כל מיני "אני מכין לכם משהו", אבל יוצא מוסכניק בסוף. בחודש האחרון אני עמל על פרוייקט חדש ופריימוורק מגניב (לדעתי, אבל איך אומרים – "קוף בעיניי אימו, איילה"). אז אם כן, בשעה טובה ומוצלחת, אני פורש את הדברים לפניכם, והרי עיקרם:
זה נכון שכחלק מתהליך עבודה, אתה מוצא עצמך בונה סט של קומפוננטות, ואם יורשה לי, פריימוורקים לשימוש האישי. ככה זה, והרי זה מבורך, אבל אחרי זמן מה הסוציאליסט החבוי שבך מתחיל להרים ראש ולשאול "למה לא לחלוק... בנאדם?".
אז הנה אני מוצא עצמי בונה פרוייקט קוד-פתוח בחסות google-code, בשם Flashmatticomponents (שימו לב לקופירייטינג המושחז והמרטיט). הפרוייקט הזה, כמו כאלו שקדמו לו, יכיל קומפוננטות ופריימוורקים וכל דחפין יתי ויאכל. הקוד פתוח, כלומר שראשית, ניתן להוריד את ה SWC ולהשתמש בו כאוות נפשכם בכל פרוייקט העולה על רוחכם, ושנית, ניתן להוריד את ה source בעזרת SVN, לייבא את הפרוייקט לפלקס בילדר הקרוב לביתכם ולהתעמר בו. הרשיון לשימוש הוא Apache License 2.0.
אז לפני שאני אתן לכם את הקישור, אגיד לכם מה יש שם כרגע, ככה שלא תופתעו:
יש שם את ה PathValidator שפרסמתי לא מכבר. למי שלא זוכר, זהו וואלידטור המוודא שנתיב ל file system הוא ואלידי ומצביע אל קובץ או תקייה אמיתיים. זה בקטנה, ככה באפרטיף.
מה שבאמת מגניב הוא פריימוורק חדש שקראתי לו “Wizard”.
Wizard הוא פריימוורק שכל יעודו הוא לתת מענה קל ופשוט לייצירת step-by-step wizards בפלקס. אני לא מאמין שיש מישהו שלא יודע מה זה wizard, אבל לכל אלה שלא התקינו אפליקצייה מימיהם, ועשו next-next-next, אני אסביר שזה המקום שבו אתם בד"כ עושים... next-next-next.
ה- Wizard נותן כמה יכולות מאד מתבקשות, כמו:
1. הגדרת צעדים בתוכו היא קלה ומאד אינטואיטיבית.
2. מנהל את הנוויגציה בין הצעדים השונים בו.
3. מדספטצ' events עבור כל פעולה בו, בין אם עוברים לצעד הבא, או חוזרים אחור, מבטלים או מסיימים את ה- Wizard.
4. קובע את הגודל של עצמו נכון לגודל הצעדים שבתוכו. המפתח לא צריך לדאוג לכל עניין המדידה.
5. אחראי על איסוף המידע בכל צעד והשמה שלו באובייקט Data Model שהוזרק לו מבעוד מועד.
6. יכול להתבטל בכל רגע נתון.
סבבה, לא?
בכל אופן, את "איך משתמשים" ודוגמאות קוד תוכלו לקרא בדפי ה- Wiki של הפרוייקט, וכמובן אם יותרו לכם שאלות, אני פה (או שם), פשוט תפרסמו הערה ואני כבר אטפל בעניין. לא לא, זה מאד חשוב – כל הערה, שאלה משאלה (או גם מילה טובה, אם יש על מה) אני אשמח לשמוע ולפעול בהתאם, בטח ובטח אם גילתם באג סורר, או התנהגות לא צפויה/נכונה, אפשר לדווח על באגים בדף הפרוייקט עצמו.

אז עכשיו, כל שנותר הוא לקפוץ לאתר הפרוייקט, להוריד ולנסות.
תבלו :).



Grand headline, euh? Yeah… but there’s a good reason for that.
Just so that you won’t say that I come up with those promises of “cool stuff”, and later fail to deliver, I will let you know that I’ve been working on a new project and a cool framework for the past month or so, and if you allow me, I will present it now:
It’s true, that as a part of a working process you find yourself building a set of components, and dare I say frameworks that will help you along the road. That’s just the way it is, and a good thing too, but after a while the collaborative persona within you rears its head and starts asking: “why not share… mate?”
So I find myself building an Open Source project under Google-Code with the name of “Flashmatticomponents” (whiteness the marvelous and spin-shivering copywriting). This project, like other Open Source projects contains components and frameworks, so that whoever wishes to use them, will be able to.
The code is open, which means that you can download the SWC and use it freely in you project, and secondly, you can download the source and, import the project into your Flex Builder and mess with it. The Open Source Licensing is Apache License 2.0.
So, before giving you the link to the Google code site, I will tell you what currently can be found there, so that it won’t catch you in surprise:
You will find the PathValidator that I’ve recently published here. To those who don’t remember, it’s a Validator that checks the validity of native paths to the local file system. Pretty handy for any AIR application that uses file access, but this is just the aperitif…
What is really cool is the new framework that I named “Wizard”.
Wizard is a framework that its whole purpose is to make the implementation of wizards in Flex/AIR easy. The Wizard gives some very trivial behaviors:
1. Steps are easily implemented and added to the wizard, allowing the developer to concentrate on more important stuff.
2. It is responsible for the navigation within it, whether the next or previous steps are available and knows when the user has reached the end of the wizard.
3. It dispatches events for each relevant stated of the Wizard, such as: moving forward to the next step or moving backwards to the previous one, canceling it and of course when the Wizard is completed.
4. It is responsible for scaling itself according to its steps measured size. The developer using it should not be bothered with setting width and height to the Wizard or the steps.
5. The Wizard is also responsible for collecting the information the user has entered throughout the steps and package them into a data model object given to it.
6. The wizard can be canceled at any stage.
Sweet, right?
Anyway, you’ll find “how-to”’s at the project Wiki, and of course, if you still have questions, submit a comment and I will happily attend to it. No really – this is very important, if you have any wish, question, found a bug or simply have something nice to say, I will be glad to hear about it.
All there is left now is to jump to the project site, download and try it.
Enjoy :).

8 comments:

Nadav said...

בשעה טובה יא זלמה :)

FlashMattic said...

תודה, בנאדם!
:)

עטר ש. said...

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

FlashMattic said...

די, אני מסמיק...
אוקיי, את יכולה להמשיך עכשיו.

Zaphod said...

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

:)

תענוג

FlashMattic said...

אכן כן! תודה :).

Anonymous said...

הי,
זה נשמע ממש מעניין קפצתי לאתר רק אי אפשר להוריד משם את ה-SWC, נאם אתה יכול להכווין אותי מאיפה אפשר להוריד

FlashMattic said...

בוודאי,
ראשית, הרשה לי להתנצל - לא שמתי הורדה ישירה של ה SWC, מפני שהדבר מקשה על עידכונים. אני מעדיף שמי שמעוניין להשתמש יוריד את הקוד ויקמפל אותו ב Flex Builder. אני חושב שאני אשים גירסה של ה-SWC, ב- DOWNLOADS, יחד עם הסתייגות קלה, שייתכן וזהו לא ה-SWC המעודכן ביותר, ואם מעוניים במעודכן ביותר, יש להוריד את הקוד ולקמפל (שזו, ודאי הבנת, היא הדרך בה תוכל לייצר את ה-SWC).
תודה על ה heads-up.
:)