<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>akosma software &#187; iPhone</title> <atom:link href="http://akosma.com/category/iphone/feed/" rel="self" type="application/rss+xml" /><link>http://akosma.com</link> <description>Leading international provider of cross-platform and multilingual software solutions, for iPhone, iPad, Mac, Windows, Linux, Android, and the web.</description> <lastBuildDate>Mon, 06 Feb 2012 18:24:31 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Swiss App Awards &#8211; Don&#8217;t Forget!</title><link>http://akosma.com/2012/01/10/swiss-app-awards-dont-forget/</link> <comments>http://akosma.com/2012/01/10/swiss-app-awards-dont-forget/#comments</comments> <pubDate>Tue, 10 Jan 2012 10:36:18 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Mobile Web]]></category> <category><![CDATA[application]]></category> <category><![CDATA[award]]></category> <category><![CDATA[event]]></category> <category><![CDATA[Switzerland]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3353</guid> <description><![CDATA[The deadline of the Swiss App Awards is approaching! Don&#8217;t forget to submit your application using the form before January 15th! The event will be held in Zürich, on January 27th, 2012. You can submit your application (iOS, Android, Windows Mobile, web, any kind and in any language!) or just register as an attendee on [...]]]></description> <content:encoded><![CDATA[<p>The deadline of the <a
href="http://swissappawards.ch/">Swiss App Awards</a> is approaching! Don&#8217;t forget to <a
href="http://form.jotform.com/form/13471218230">submit your application using the form</a> before January 15th!</p><p>The event will be held in Zürich, on January 27th, 2012. You can <a
href="http://form.jotform.com/form/13471218230">submit your application</a> (iOS, Android, Windows Mobile, web, any kind and in any language!) or just <a
href="https://secure.trifork.com/swiss-app-awards-2012/registration/">register as an attendee</a> on the <a
href="http://swissappawards.ch/">website of the event</a>. You can also follow the <a
href="http://twitter.com/SwissAppAwards">official Twitter account</a> of the Swiss App Awards for more information.</p><p>We look forward to see your applications!</p><p><a
href="http://swissappawards.ch/" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/swissappawards_banner.png" alt="Swissappawards banner" border="0" width="620" height="113" class="alignleft size-full" /></a></p><p>[6]:http://www.trifork.com/<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/12/19/swiss-app-awards-2012-submit-your-app-now/" rel="bookmark" title="December 19, 2011">Swiss App Awards 2012 &#8211; Submit your app now!</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li><li><a
href="http://akosma.com/2011/10/19/attending-senchacon-2011/" rel="bookmark" title="October 19, 2011">Attending SenchaCon 2011</a></li><li><a
href="http://akosma.com/2012/02/06/goto-copenhagen-2012-call-for-speakers/" rel="bookmark" title="February 6, 2012">GOTO Copenhagen 2012 &#8211; Call for Speakers!</a></li><li><a
href="http://akosma.com/2011/12/12/qcon-london-2012-call-for-papers-in-the-cross-platform-mobile-track/" rel="bookmark" title="December 12, 2011">QCon London 2012: Call for Papers in the Cross-Platform Mobile Track</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2012/01/10/swiss-app-awards-dont-forget/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Trainings 2012: Advanced iOS, Mobile Web Apps and Node.js</title><link>http://akosma.com/2011/12/29/trainings-2012-advanced-ios-mobile-web-apps-and-node-js/</link> <comments>http://akosma.com/2011/12/29/trainings-2012-advanced-ios-mobile-web-apps-and-node-js/#comments</comments> <pubDate>Thu, 29 Dec 2011 10:08:48 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[Education]]></category> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Mobile Web]]></category> <category><![CDATA[Geneva]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[jQuery Mobile]]></category> <category><![CDATA[Node.js]]></category> <category><![CDATA[Sencha Touch]]></category> <category><![CDATA[Switzerland]]></category> <category><![CDATA[training]]></category> <category><![CDATA[Zürich]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3334</guid> <description><![CDATA[We are thrilled to announce new training sessions in Switzerland and South Africa this year: Advanced iOS: this training is for experienced iOS developers, looking to increase their knowledge with insider tips and tricks about the following subjects: Building iOS 5.x universal applications, compatible with version 4.x of iOS. Advanced user interface design for the [...]]]></description> <content:encoded><![CDATA[<p>We are thrilled to announce new training sessions in Switzerland and
South Africa this year:</p><ul><li><strong>Advanced iOS</strong>: this training is for experienced iOS developers,
looking to increase their knowledge with insider tips and tricks about
the following subjects:<ul><li>Building iOS 5.x universal applications, compatible with version
4.x of iOS.</li><li>Advanced user interface design for the iPhone and the iPad</li><li>Integrating your application with Twitter, Facebook and other
social networking sites.</li><li>Performance enhancements using Core Foundation in your
applications.</li><li>Using Instruments to find performance problems.</li><li>Major ninja-level optimizations.</li><li>2D graphics and animation: Quartz and Core Animation.</li><li>Video, audio, the iPod library, AirPlay, etc.</li></ul></li><li><strong>Mobile Web App Development</strong>: targeting web developers who want to
take their existing knowledge to the next step:<ul><li>Build mobile web applications such as to-do lists, a
location-based social networking site and other apps using <a
href="http://www.sencha.com/products/touch">Sencha
Touch</a>, <a
href="http://jquerymobile.com/">jQuery Mobile</a>.</li><li>Learn how to integrate data from remote APIs in your mobile web
apps, and how to organize your code and your architecture for the
best results.</li><li>Package those applications using <a
href="http://phonegap.com/">PhoneGap</a> and [PhoneGap
Build][9] and distribute them over the major mobile application
marketplaces.</li></ul></li><li><strong>Web Development with Node.js</strong>: this is our new training offering,
for web developers who want to learn more about [the latest and
greatest web framework of the moment][9]:<ul><li>Learn how to create common web applications such as a blog, wiki,
and management systems with backend databases, using the standard
Node.js toolkit.</li><li>Learn about other tools like <a
href="http://npmjs.org/">npm</a>, <a
href="http://expressjs.com/">Express</a>, <a
href="http://vowsjs.org/">Vows</a>, <a
href="http://www.mongodb.org/">MongoDB</a>, <a
href="http://persistencejs.org/">Persistence.js</a> and more.</li></ul></li></ul><p>All trainings are 3 days long, and they include lunch and snacks during
the day. All trainees will receive a ~100 page booklet written by Adrian
with the most important aspects of the training, in PDF, ePub and .mobi
(Kindle) formats. These trainings will take place throughout 2012 in
Geneva and Zürich.</p><p>More information about dates and locations soon! We hope to see you
soon!</p><p><strong>Update</strong>: we forgot to mention that the trainings in Geneva will be
given in French, while in Zürich they will be in English. We are also
going to offer these in South Africa!</p><p>[9]:http://nodejs.org/<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/01/21/advanced-ios-4-2-training-course-zurich-february-7th-and-8th-2011-enroll-now/" rel="bookmark" title="January 21, 2011">Advanced iOS 4.2 Training Course &#8211; Zürich, February 7th and 8th 2011 &#8211; Enroll now!</a></li><li><a
href="http://akosma.com/2011/12/22/more-mobile-application-training-in-south-africa/" rel="bookmark" title="December 22, 2011">More Mobile Application Training in South Africa</a></li><li><a
href="http://akosma.com/2011/10/19/attending-senchacon-2011/" rel="bookmark" title="October 19, 2011">Attending SenchaCon 2011</a></li><li><a
href="http://akosma.com/2011/09/30/mobile-application-training-in-south-africa/" rel="bookmark" title="September 30, 2011">Mobile Application Training in South Africa</a></li><li><a
href="http://akosma.com/2012/02/01/mobile-web-training-in-zurich-once-again/" rel="bookmark" title="February 1, 2012">Mobile Web Training in Zürich Once Again!</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/12/29/trainings-2012-advanced-ios-mobile-web-apps-and-node-js/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Announcing EERV cal, an iPhone, Android and Web Application!</title><link>http://akosma.com/2011/12/20/announcing-eerv-cal-an-iphone-android-and-web-application/</link> <comments>http://akosma.com/2011/12/20/announcing-eerv-cal-an-iphone-android-and-web-application/#comments</comments> <pubDate>Tue, 20 Dec 2011 10:10:40 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Android]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Mobile Web]]></category> <category><![CDATA[Portfolio]]></category> <category><![CDATA[application]]></category> <category><![CDATA[mobile]]></category> <category><![CDATA[PhoneGap]]></category> <category><![CDATA[Sencha Touch]]></category> <category><![CDATA[web]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3295</guid> <description><![CDATA[We are ecstatic to announce the general availability of the EERV cal mobile application, created with Sencha Touch and PhoneGap, and available as an HTML5 web application, and also on the [App Store][6] and the Android Market! This app has been built for the local protestant church, the Eglise évangélique réformée du canton de Vaud [...]]]></description> <content:encoded><![CDATA[<p>We are ecstatic to announce the general availability of the <a
href="http://eerv.ch/">EERV cal</a> mobile application, created with <a
href="http://www.sencha.com/products/touch">Sencha Touch</a> and <a
href="http://phonegap.com/">PhoneGap</a>, and available as an <a
href="http://eerv.ch/mobile/">HTML5 web application</a>, and also on the [App Store][6] and the <a
href="https://market.android.com/details?id=ch.eerv">Android Market</a>!</p><p><a
href="http://eerv.ch/"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/eerv_logo.png" alt="Eerv logo" border="0" width="170" height="170" class="alignleft size-full" /></a></p><p>This app has been built for the local protestant church, the <a
href="http://eerv.ch/">Eglise évangélique réformée du canton de Vaud</a> (EERV), and features the complete <a
href="http://eerv.ch/agenda">agenda</a> of events proposed throughout the region.</p><p>Check it out on the [App Store][6] the <a
href="https://market.android.com/details?id=ch.eerv">Android Market</a> or install the web app <a
href="http://eerv.ch/mobile/">directly from your browser</a>!</p><p>[<img
src="http://akosma.com/wp/wp-content/uploads/2011/12/eerv_ios.png" alt="Eerv ios" border="0" width="440" height="208" class="alignnone size-medium" />][6]</p><p><a
href="https://market.android.com/details?id=ch.eerv"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/eerv_android.png" alt="Eerv android" border="0" width="440" height="230" class="alignnone size-medium" /></a></p><p>[6]:http://itunes.apple.com/ch/app/eerv-cal/id483342559?l=en&amp;mt=8<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/10/19/attending-senchacon-2011/" rel="bookmark" title="October 19, 2011">Attending SenchaCon 2011</a></li><li><a
href="http://akosma.com/2011/09/28/announcing-the-swissinfo-iphone-application/" rel="bookmark" title="September 28, 2011">Announcing the swissinfo iPhone Application!</a></li><li><a
href="http://akosma.com/2011/11/14/news-for-this-week/" rel="bookmark" title="November 14, 2011">News for this week: Training + Interview</a></li><li><a
href="http://akosma.com/2011/09/13/a-shift-in-the-market-towards-mobile-web-apps/" rel="bookmark" title="September 13, 2011">A Shift In The Market Towards Mobile Web Apps</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/12/20/announcing-eerv-cal-an-iphone-android-and-web-application/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Swiss App Awards 2012 &#8211; Submit your app now!</title><link>http://akosma.com/2011/12/19/swiss-app-awards-2012-submit-your-app-now/</link> <comments>http://akosma.com/2011/12/19/swiss-app-awards-2012-submit-your-app-now/#comments</comments> <pubDate>Mon, 19 Dec 2011 14:18:38 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[application]]></category> <category><![CDATA[award]]></category> <category><![CDATA[event]]></category> <category><![CDATA[Switzerland]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3284</guid> <description><![CDATA[I&#8217;m honored to announce that I will be part of the jury of the next Swiss App Awards 2012, to be held in Zürich, on January 27th, 2012! The event is a gathering of the many designers, developers and companies that contribute to excellence, innovation and achivement in the Swiss app development landscape. The Awards [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m honored to announce that I will be part of the jury of the next <a
href="http://swissappawards.ch/">Swiss App Awards 2012</a>, to be held in Zürich, on January 27th, 2012!</p><p>The event is a gathering of the many designers, developers and companies that contribute to excellence, innovation and achivement in the Swiss app development landscape. The Awards show is looking to celebrate the most outstanding apps developed or updated in 2011 and owned by Swiss companies. The apps that will be rewarded at the Swiss App Awards 2012 are not only innovative but do also demonstrate excellence both on technical and design related features.</p><p>I will be sharing the duty of jury with:</p><ul><li>Janne Jul Jensen, PhD and expert in UX design;</li><li>Katja Neumann, usability engineer at Zühlke;</li><li>Jørn Larsen, co-founder and CEO of <a
href="http://www.trifork.com/">Trifork</a>; and</li><li>Martin Coul, founder of the <a
href="http://www.mobicamp.ch/">Swiss Mobile Basecamp</a>.</li></ul><p>You can <a
href="http://form.jotform.com/form/13471218230">submit your application</a> (iOS, Android, Windows Mobile, web, any kind and in any language!) or just <a
href="https://secure.trifork.com/swiss-app-awards-2012/registration/">register as an attendee</a> on the <a
href="http://swissappawards.ch/">website of the event</a>. You can also follow the <a
href="http://twitter.com/SwissAppAwards">official Twitter account</a> of the Swiss App Awards for more information.</p><p>We look forward to see your applications!</p><p><a
href="http://swissappawards.ch/" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/swissappawards_banner.png" alt="Swissappawards banner" border="0" width="620" height="113" class="alignleft size-full" /></a></p><p><strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2012/01/10/swiss-app-awards-dont-forget/" rel="bookmark" title="January 10, 2012">Swiss App Awards &#8211; Don&#8217;t Forget!</a></li><li><a
href="http://akosma.com/2011/09/28/jquery-mobile-multiplatform-mobile-webapps-by-maximiliano-firtman/" rel="bookmark" title="September 28, 2011">&#8220;jQuery Mobile: multiplatform mobile webapps&#8221; &#8211; by Maximiliano Firtman!</a></li><li><a
href="http://akosma.com/2010/08/27/jaoo-2010/" rel="bookmark" title="August 27, 2010">JAOO 2010</a></li><li><a
href="http://akosma.com/2011/12/12/qcon-london-2012-call-for-papers-in-the-cross-platform-mobile-track/" rel="bookmark" title="December 12, 2011">QCon London 2012: Call for Papers in the Cross-Platform Mobile Track</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/12/19/swiss-app-awards-2012-submit-your-app-now/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Student application on the App Store: TroisXRien</title><link>http://akosma.com/2011/12/13/student-application-on-the-app-store-troisxrien/</link> <comments>http://akosma.com/2011/12/13/student-application-on-the-app-store-troisxrien/#comments</comments> <pubDate>Tue, 13 Dec 2011 10:51:01 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Portfolio]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[application]]></category> <category><![CDATA[Switzerland]]></category> <category><![CDATA[training]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3277</guid> <description><![CDATA[Remember Sudokulus? It&#8217;s the application created by one of my students in a previous training. Well, today I have the pride and the joy to announce the second application created by one of our students, and published on the App Store! The application is called TroisXRien, and it is an application that kids can use [...]]]></description> <content:encoded><![CDATA[<p>Remember Sudokulus? It&#8217;s the <a
href="http://akosma.com/2011/07/06/student-application-on-the-app-store-sudokulus/">application created by one of my students</a> in a previous training. Well, today I have the pride and the joy to announce the second application created by one of our students, and published on the App Store!</p><p><a
href="http://itunes.apple.com/ch/app/troisxrien/id465719143?l=fr&#038;mt=8" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/troisxrienicon.png" alt="Troisxrienicon" border="0" width="170" height="171" class="alignleft size-full" /></a></p><p>The application is called <a
href="http://itunes.apple.com/ch/app/troisxrien/id465719143?l=fr&amp;mt=8">TroisXRien</a>, and it is an application that kids can use to learn arithmetics; select one or many exercises, and kids repeat them until they don&#8217;t make any more mistakes! Parents can follow the evolution of their kids closely, as the application can send them an email when the training is done.</p><p>A very nice idea, beautifully illustrated &#8211; Vincent is not only a great school teacher, but also a tremendous cartoonist! (by the way, he&#8217;s the author of these <a
href="https://www.facebook.com/media/set/?set=a.10150426423201100.383059.184046196099&amp;type=1">drawings about akosma</a> that you can check in our <a
href="https://www.facebook.com/akosmasoftware">Facebook page</a> <img
src='http://akosma.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p><p>Congratulations Vincent! Let&#8217;s give his app some download love! It already features lots of 5 star ratings, let&#8217;s give him more of them!</p><p><a
href="http://itunes.apple.com/ch/app/troisxrien/id465719143?l=fr&#038;mt=8" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/12/mzl.anhzpjbc.320x480-75.png" alt="Mzl anhzpjbc 320x480 75" border="0" width="440" height="216" class="alignnone size-medium" /></a><strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/" rel="bookmark" title="September 22, 2011">RooiFonts 1.1 &#8211; in the App Store!</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li><li><a
href="http://akosma.com/2012/02/01/qcon-london-2012-cross-platform-mobile-track-announcement/" rel="bookmark" title="February 1, 2012">QCon London 2012: Cross-Platform Mobile Track Announcement!</a></li><li><a
href="http://akosma.com/2011/09/15/bluewoki-2-0-hits-the-app-store/" rel="bookmark" title="September 15, 2011">bluewoki 2.0 Hits the App Store!</a></li><li><a
href="http://akosma.com/2010/03/26/why-some-analysts-dont-get-the-ipad-yet/" rel="bookmark" title="March 26, 2010">Why Some Analysts Don&#8217;t Get The iPad (Yet)</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/12/13/student-application-on-the-app-store-troisxrien/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Announcing the swissinfo iPhone Application!</title><link>http://akosma.com/2011/09/28/announcing-the-swissinfo-iphone-application/</link> <comments>http://akosma.com/2011/09/28/announcing-the-swissinfo-iphone-application/#comments</comments> <pubDate>Wed, 28 Sep 2011 07:18:43 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPhone]]></category> <category><![CDATA[Portfolio]]></category> <category><![CDATA[application]]></category> <category><![CDATA[swissinfo]]></category> <category><![CDATA[Universal Application]]></category> <category><![CDATA[update]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3221</guid> <description><![CDATA[We are thrilled to announce the general availability of version 2.0 of the swissinfo application, this time bundled as a Universal Application, including an iPhone version together with the iPad version! This app includes articles, high quality videos, audio slideshows, podcasts and galleries from the Swiss Broadcasting Corporation. Designed for maximum comfort, the app also [...]]]></description> <content:encoded><![CDATA[<p>We are thrilled to announce the general availability of <a
href="http://itunes.apple.com/us/app/swissinfo.ch/id407776916?mt=8">version 2.0 of the swissinfo application</a>, this time bundled as a Universal Application, including an iPhone version together with the iPad version!</p><p><a
href="http://itunes.apple.com/us/app/swissinfo.ch/id407776916?mt=8"><img
src="http://akosma.com/wp/wp-content/uploads/2010/12/swissinfo-icon.png" alt="swissinfo-icon.png" border="0" width="170" height="170" class="alignleft size-full" /></a></p><p>This app includes articles, high quality videos, audio slideshows, podcasts and galleries from the Swiss Broadcasting Corporation. Designed for maximum comfort, the app also includes a weekly review to keep in touch with the essential Swiss news.</p><p>This Swiss Broadcasting Corporation application is available in 9 languages: English, Chinese, Arabic, Japanese, Spanish, Portuguese, French, German and Italian.</p><p>Check it out <a
href="http://itunes.apple.com/us/app/swissinfo.ch/id407776916?mt=8">on the App Store!</a></p><p><a
href="http://itunes.apple.com/us/app/swissinfo.ch/id407776916?mt=8"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/swissinfo_screens.png" alt="swissinfo screens" border="0" width="440" height="140" class="alignnone size-medium" /></a></p><p>PS: The application is launched simultaneously today with the <a
href="https://market.android.com/details?id=ch.swissinfo.mobilelite&amp;hl=en">new Android application</a>, featuring a very similar look and feel as the iPhone version. Check it out as well!<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2010/12/27/swissinfo-ch-ipad-application/" rel="bookmark" title="December 27, 2010">swissinfo.ch iPad application</a></li><li><a
href="http://akosma.com/2011/12/20/announcing-eerv-cal-an-iphone-android-and-web-application/" rel="bookmark" title="December 20, 2011">Announcing EERV cal, an iPhone, Android and Web Application!</a></li><li><a
href="http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/" rel="bookmark" title="September 27, 2011">Senbei 1.3 hits the App Store!</a></li><li><a
href="http://akosma.com/2011/09/15/bluewoki-2-0-hits-the-app-store/" rel="bookmark" title="September 15, 2011">bluewoki 2.0 Hits the App Store!</a></li><li><a
href="http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/" rel="bookmark" title="September 26, 2011">Notitas 2.0 &#8211; A Major Milestone!</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/28/announcing-the-swissinfo-iphone-application/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Senbei 1.3 hits the App Store!</title><link>http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/</link> <comments>http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/#comments</comments> <pubDate>Tue, 27 Sep 2011 05:32:55 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPhone]]></category> <category><![CDATA[Products]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[application]]></category> <category><![CDATA[CRM]]></category> <category><![CDATA[Senbei]]></category> <category><![CDATA[update]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3218</guid> <description><![CDATA[Our application Senbei has been updated to version 1.3! Senbei is the iPhone client of the popular Fat Free CRM application by Michael Dvorkin, written in Ruby on Rails. In this version we have updated the code for compatibility with iOS 4.0 and later, and also with graphics that take advantage of the latest Retina [...]]]></description> <content:encoded><![CDATA[<p>Our application <a
href="http://itunes.com/apps/senbei">Senbei</a> has been updated to version 1.3! Senbei is
the iPhone client of the popular <a
href="http://www.fatfreecrm.com/">Fat Free CRM</a> application by <a
href="http://twitter.com/mid">Michael Dvorkin</a>, written in <a
href="http://rubyonrails.org/">Ruby on Rails</a>.</p><p><a
href="http://itunes.com/apps/senbei"><img
src="http://akosma.com/wp/wp-content/uploads/2010/02/senbei_icon.png"
alt="senbei_icon.png" border="0" width="170" height="170"
class="alignleft size-full" /></a></p><p>In this version we have updated the code for compatibility with iOS 4.0
and later, and also with graphics that take advantage of the latest
Retina displays. We have also solved a number of small but annoying bugs
that were scattered throughout the application.</p><p>Get <a
href="http://itunes.com/apps/senbei">Senbei from the App Store</a> or check out the source code in <a
href="https://github.com/akosma/Senbei">Github!</a> Senbei features an implementation of the [proposed network
request architecture][6] we&#8217;ve talked about in this blog before, so be
sure to check that part of the code as well.</p><p>[6]:http://akosma.com/2011/09/20/a-proposed-architecture-for-network-bound-ios-apps/<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/09/20/a-proposed-architecture-for-network-bound-ios-apps/" rel="bookmark" title="September 20, 2011">A Proposed Architecture for Network-Bound iOS Apps</a></li><li><a
href="http://akosma.com/2011/09/15/bluewoki-2-0-hits-the-app-store/" rel="bookmark" title="September 15, 2011">bluewoki 2.0 Hits the App Store!</a></li><li><a
href="http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/" rel="bookmark" title="September 22, 2011">RooiFonts 1.1 &#8211; in the App Store!</a></li><li><a
href="http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/" rel="bookmark" title="September 26, 2011">Notitas 2.0 &#8211; A Major Milestone!</a></li><li><a
href="http://akosma.com/2011/12/19/swiss-app-awards-2012-submit-your-app-now/" rel="bookmark" title="December 19, 2011">Swiss App Awards 2012 &#8211; Submit your app now!</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Notitas 2.0 &#8211; A Major Milestone!</title><link>http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/</link> <comments>http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/#comments</comments> <pubDate>Mon, 26 Sep 2011 04:50:11 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Products]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[application]]></category> <category><![CDATA[Notitas]]></category> <category><![CDATA[Universal Application]]></category> <category><![CDATA[update]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3208</guid> <description><![CDATA[Notitas 2.0 has been approved during the weekend, and is available in the App Store! This is a major revision of our review-winning application, including a much awaited adaptation to the iPad! That&#8217;s right, you can now create, read and edit your notes directly on the iPad. This new application is as simple to use [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://muchasnotitas.com/Notitas/">Notitas 2.0</a> has been approved during the weekend, and is
available in the App Store!</p><p><a
href="http://itunes.com/apps/notitas"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/notitas_icon.png" alt="" border="0" width="170" height="170" class="alignleft size-full" /></a></p><p>This is a major revision of our <a
href="http://www.lexpress.fr/actualite/high-tech/notitas-im-plus-old-booth-premium_791232.html">review-winning application</a>,
including a much awaited adaptation to the iPad! That&#8217;s right, you can
now create, read and edit your notes directly on the iPad. This new
application is as simple to use as the iPhone version, but with the
added benefit of allowing you to move notes freely around the interface,
ordering and changing them as you need. A full-sized map shows the
location of all your notes, helping you keep track of your ideas and
their location.</p><p>The iPad version come bundled in the same package as the iPhone
application, so that current owners will get the iPad version for free,
the next time you update. We have also updated the graphics of the
iPhone version to support the newest Retina displays, and finally, we
have updated the application to support only iOS 4.0 and higher, as <a
href="http://akosma.com/2011/08/23/dropping-support-for-iphone-os-3-x/">explained previously in this blog</a>.</p><p><a
href="http://itunes.com/apps/notitas"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/mzl.walzbmef.png" alt="Notitas for the iPad, by akosma" border="0" width="440" height="321" class="alignnone size-medium" /></a></p><p><a
href="http://itunes.com/apps/notitas">Get your copy of Notitas now!</a> We would love to hear your feedback!
We are going to continue to push new features into it, so stay tuned to
our Twitter account [@MuchasNotitas][5]!</p><p>[5]:http://twitter.com/MuchasNotitas<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/" rel="bookmark" title="September 27, 2011">Senbei 1.3 hits the App Store!</a></li><li><a
href="http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/" rel="bookmark" title="September 22, 2011">RooiFonts 1.1 &#8211; in the App Store!</a></li><li><a
href="http://akosma.com/2011/09/15/bluewoki-2-0-hits-the-app-store/" rel="bookmark" title="September 15, 2011">bluewoki 2.0 Hits the App Store!</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li><li><a
href="http://akosma.com/2011/12/29/trainings-2012-advanced-ios-mobile-web-apps-and-node-js/" rel="bookmark" title="December 29, 2011">Trainings 2012: Advanced iOS, Mobile Web Apps and Node.js</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>RooiFonts 1.1 &#8211; in the App Store!</title><link>http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/</link> <comments>http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/#comments</comments> <pubDate>Thu, 22 Sep 2011 07:18:52 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Products]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[application]]></category> <category><![CDATA[RooiFonts]]></category> <category><![CDATA[update]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3100</guid> <description><![CDATA[The update frenzy continues! This is a long due update, one that we have been pushing back for a while; finally, RooiFonts 1.1 is ready to be downloaded from the App Store! RooiFonts our popular font viewer that allows users to browse, compare, share and learn about the fonts installed in iOS. This new version [...]]]></description> <content:encoded><![CDATA[<p>The update frenzy continues! This is a long due update, one that we have been pushing back for a while; finally, <a
href="http://rooifonts.com/">RooiFonts 1.1</a> is ready to be downloaded from the App Store! RooiFonts our popular font viewer that allows users to browse, compare, share and learn about the fonts installed in iOS.</p><p>This new version is now a Universal application, that runs both on the iPad, the iPhone and the iPod touch! It also features nice new icons, compatible with the Retina display of the iPhone 4, and we&#8217;ve also updated the application for compatibility with <a
href="http://akosma.com/2011/08/23/dropping-support-for-iphone-os-3-x/">iOS 4.0+ only</a>.</p><p>As usual, this is a free update for existing customers. <a
href="http://itunes.com/apps/rooifonts">Get it now!</a> We are also going to give away some promo codes on the <a
href="https://twitter.com/RooiFonts">RooiFonts Twitter account</a>, so stay tuned and follow us!</p><p><a
href="http://itunes.com/apps/rooifonts" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/rooifonts_icon.png" alt="Rooifonts icon" border="0" width="170" height="171" class="alignleft size-full" /></a></p><p><a
href="http://itunes.com/apps/rooifonts" target="_blank"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/mzl.qchxfzzi.png" alt="Mzl qchxfzzi" border="0" width="440" height="321" class="alignnone size-medium" /></a><strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/09/26/notitas-2-0-a-major-milestone/" rel="bookmark" title="September 26, 2011">Notitas 2.0 &#8211; A Major Milestone!</a></li><li><a
href="http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/" rel="bookmark" title="September 27, 2011">Senbei 1.3 hits the App Store!</a></li><li><a
href="http://akosma.com/2011/09/15/bluewoki-2-0-hits-the-app-store/" rel="bookmark" title="September 15, 2011">bluewoki 2.0 Hits the App Store!</a></li><li><a
href="http://akosma.com/2011/08/23/dropping-support-for-iphone-os-3-x/" rel="bookmark" title="August 23, 2011">Dropping support for iPhone OS 3.x</a></li><li><a
href="http://akosma.com/2011/12/23/retrospective-2011/" rel="bookmark" title="December 23, 2011">Retrospective 2011</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/22/rooifonts-1-1-in-the-app-store/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>A Proposed Architecture for Network-Bound iOS Apps</title><link>http://akosma.com/2011/09/20/a-proposed-architecture-for-network-bound-ios-apps/</link> <comments>http://akosma.com/2011/09/20/a-proposed-architecture-for-network-bound-ios-apps/#comments</comments> <pubDate>Tue, 20 Sep 2011 15:48:17 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[application]]></category> <category><![CDATA[Architecture]]></category> <category><![CDATA[blocks]]></category> <category><![CDATA[delegates]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[Network]]></category> <category><![CDATA[notifications]]></category> <category><![CDATA[polymorphism]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3094</guid> <description><![CDATA[One of my most popular answers in StackOverflow is the one I gave to the following question: &#8220;What is the best architecture for an iOS application that makes many network requests?&#8221; The problem is the following: let&#8217;s consider a relatively complex application, which has to connect to, and retrieve and send data from different remote [...]]]></description> <content:encoded><![CDATA[<p>One of my <a
href="http://stackoverflow.com/questions/4810289/best-architecture-for-an-ios-application-that-makes-many-network-requests/4823001#4823001">most popular
answers</a> in StackOverflow is the one I gave to the following question: &#8220;What is
the best architecture for an iOS application that makes many network
requests?&#8221;</p><p>The problem is the following: let&#8217;s consider a relatively complex
application, which has to connect to, and retrieve and send data from
different remote resources (from the same origin or from different
ones), all while handling as gracefully as possible different problems
such as &#8220;network not available&#8221;, &#8220;500&#8243; errors, etc, while at the same
time notifying the app about showing popups, enabling and disabling
fields, with many different screens (usually each with its own
controller), and so on.</p><p><img
src="http://akosma.com/wp/wp-content/uploads/2010/02/senbei_icon.png"
alt="senbei_icon.png" border="0" width="170" height="170"
class="alignleft size-full" /></p><p>This article will describe in detail a solution for this problem using <a
href="http://allseeing-i.com/ASIHTTPRequest/">ASIHTTPRequest</a>, my favorite
HTTP library for iOS. The solution involves a bit of object oriented
code, and there is a sample implementation in our <a
href="https://github.com/akosmasoftware/Senbei/">Senbei project in
Github</a> that I am going to
refer to in this article.</p><p>I want to point out that I do not consider this the &#8220;best&#8221; architecture
by any means; it is simply a pattern or structure that has given me
excellent results in many different applications, and which has evolved
over time from many other approaches. If someone else has a better idea,
I&#8217;d be glad to try it! This architecture also has the advantage of being
easy to document, understand, maintain and extend.<span
id="more-3094"></span>In the answer on StackOverflow I just enumerated the different elements
of the architecture; here I will explain the rationale behind every
decision.</p><h2>Singleton, &#8220;Class Cluster&#8221;</h2><p>As I said in the answer, this architecture involves a single object
taking care of network connectivity, which I will call a &#8220;network
manager&#8221;. Typically this object is a singleton (created using <a
href="http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html">Matt
Gallagher&#8217;s Cocoa singleton macro</a>). Basically this is because it&#8217;s a
good way to centralize all the network logic in a single component, and
it is also a very common Cocoa design pattern.</p><p>This object can also be seen as a class cluster, because it uses an army
of individual classes that perform the real work behind the scenes.</p><p>In Senbei, this singleton object is the <a
href="https://github.com/akosmasoftware/Senbei/tree/master/Classes/Helpers/SBNetworkManager">SBNetworkManager</a> class. All the
controllers of the application use the methods of this class to trigger
asynchronous requests to the remote FFCRM server used by the
application. All of these controllers, as well as the application
delegate, are notified of events by means of ad hoc notifications
(defined in the <a
href="https://github.com/akosmasoftware/Senbei/blob/master/Classes/Helpers/SBNotifications.h">SBNotifications.h</a> file).</p><h2>Network Queues</h2><p>The network manager wraps an instance of ASINetworkQueue, and also acts
as its delegate. Network queues are interesting in mobile apps, given
that the available bandwidth varies drastically when the device is
connected through a wifi connection or a low-speed GPRS mobile network.
The network queue will automatically change the number of requests sent
by unit of time depending on the current connectivity, without clogging
the device.</p><p>In our example, SBNetworkManager has a private ivar (well, as private as
Objective-C allows ivars to be) pointing to an instance of
ASINetworkQueue, itself a subclass of NSOperationQueue.</p><h2>One Subclass per Request</h2><p>I create subclasses of ASIHTTPRequest for each kind of network request
that my app requires (typically, for each backend REST interaction or
SOAP endpoint).</p><p>I also create a base class for all the requests of the application; this
allows to centralize some shared behavior in the base class, which
proves handy while extending and refactoring your network code.</p><p>In our example, Senbei has a base class for all the GET requests in the
application, called <a
href="https://github.com/akosmasoftware/Senbei/blob/master/Classes/Helpers/SBNetworkManager/Requests/SBBaseRequest.h">SBBaseRequest</a>. There is another base request, called <a
href="https://github.com/akosmasoftware/Senbei/blob/master/Classes/Helpers/SBNetworkManager/Requests/SBBaseFormDataRequest.h">SBBaseFormDataRequest</a>, which is used for requests that use the POST and
PUT verbs (used to create and modify resources on the server).</p><p>There is also a category on ASIHTTPRequest, to add some methods to any
request create on the system; this is required because SBBaseRequest
inherits from ASIHTTPRequest, while SBFormDataRequest inherits from
ASIHTTPFormDataRequest, which also inherits from ASIHTTPRequest. The
category on the latter allows to inject some common behavior in a way
that classic inheritance does not allow per se.</p><p>For every network interaction in the server, there is a dedicated class
available for the SBNetworkManager; the code is easy to understand, and
the responsibilities are separated and well defined. Should the system
be extended in the future, the extension mechanism will naturally fit
any new request, in a horizontal fashion.</p><p>The following class diagram (generated from the Xcode project using the
excellent [OmniGraffle][9] application) shows how the system is structured
(you can click the diagram to see a larger version).</p><p><a
href="http://akosma.com/wp/wp-content/uploads/2011/09/diagram-large.png"><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/diagram.png" alt="Network manager class diagram" border="0" width="620" height="241" class="alignleft size-full" /></a></p><h2>Polymorphism to the Rescue</h2><p>The network manager doesn&#8217;t know what to do with the result of each
request; hence, it just calls a method <strong>on the request</strong>. Remember,
requests are subclasses of ASIHTTPRequest, so you can just put the code
that manages the result of the request (typically, deserialization of
JSON or XML into real objects, triggering other network connections,
updating Core Data stores, etc). Putting the code into each separate
request subclass, using a polymorphic method with a common name accross
request classes, makes it very easy to debug and manage them.</p><p>In our example, the SBNetworkManager calls the &#8220;processResponse&#8221; method
in each subclass. This method has an empty implementation in our
category for ASIHTTPRequest, and each individual subclass performs a
different set of operations; some will parse XML, some will just post a
notification; the separation of the logic in each subclass makes it easy
to debug, document, maintain and extend the system.</p><h2>Usage</h2><p>Every time one of my controllers requires some data (refresh,
viewDidAppear, etc), the network manager creates an instance of the
required ASIHTTPRequest subclass, and then adds it to the queue.</p><p>Whenever a request finishes or fails, the network manager is called
(remember, the network manager is the queue&#8217;s delegate). In turn, the
network manager calls a method on the request itself, delegating the
task of the processing of the response to each subclass.</p><p>In Senbei, every method of the SBNetworkManager class just creates an
instance of a dedicated SBBaseRequest subclass, and pushes it into the
wrapped network queue.</p><h2>Notifications</h2><p>The network manager notifies the controllers above about interesting
events using notifications; using a delegate protocol is not a good
idea, because in your app you typically have many controllers talking to
your network manager, and notifications are more flexible.</p><p>However, as with always with notifications, using them requires
planning, naming conventions and documentation. Code using notifications
might be complex to maintain, because the dependencies are not obvious
at first hand; that&#8217;s the price of their flexibility. In Senbei,
notifications are all defined in the same file, so that different
components can use the same constants throughout the application. The
names of the notifications are clear and express the purpose and
circumstance of each one.</p><p>Since iOS 4 there is also the possibility of using blocks as callback
notifications, but then again, I think they just offer an alternative to
delegate protocols; notifications are much more flexible, as many
different objects can be notified of the same event (and receive the
same information through userInfo dictionaries) at once.</p><h2>Conclusion</h2><p>This is how I&#8217;ve been writing many network-bound apps for the past few
years, and frankly it has worked pretty well so far. I can extend the
system horizontally, adding more ASIHTTPRequest subclasses as I need
them, and the core of the network manager stays intact. The
responsibilities is clearly separated, and the class and notification
names give a pretty good idea of the purpose of each request.</p><p>One problem that I haven&#8217;t yet solved with this architecture (and one
that a commenter of my StackOverflow answer points out) is finding a way
to test the system; probably using mock objects, we could simulate
different network conditions, and integrate this knowledge with
automated tests.</p><p>I hope that this architecture is useful to you too! I look forward to
read your comments below.</p><p>[9]:http://www.omnigroup.com/products/omnigraffle/<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/09/27/senbei-1-3-hits-the-app-store/" rel="bookmark" title="September 27, 2011">Senbei 1.3 hits the App Store!</a></li><li><a
href="http://akosma.com/2010/05/28/initwithcontentsofurl-methods-considered-harmful/" rel="bookmark" title="May 28, 2010">initWithContentsOfURL: Methods Considered Harmful</a></li><li><a
href="http://akosma.com/2011/10/19/attending-senchacon-2011/" rel="bookmark" title="October 19, 2011">Attending SenchaCon 2011</a></li><li><a
href="http://akosma.com/2010/06/03/objective-c-categories-as-stylesheets/" rel="bookmark" title="June 3, 2010">Objective-C Categories as Stylesheets</a></li><li><a
href="http://akosma.com/2010/02/18/mobile-marketing-branding-seminar-in-zurich-save-15/" rel="bookmark" title="February 18, 2010">Mobile Marketing &#038; Branding Seminar in Zürich &#8211; Save 15%!</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/20/a-proposed-architecture-for-network-bound-ios-apps/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
