<?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; Opinion</title> <atom:link href="http://akosma.com/category/opinion/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>How we work</title><link>http://akosma.com/2012/01/30/how-we-work/</link> <comments>http://akosma.com/2012/01/30/how-we-work/#comments</comments> <pubDate>Mon, 30 Jan 2012 13:45:25 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[strategy]]></category> <category><![CDATA[workflow]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3356</guid> <description><![CDATA[We have been in business for quite a few years, and we have found out several things that work and other that don&#8217;t in our activities. We have had our share of successes and failures, as any other business; and we hope to have learnt something along the way. This post will outline the recipes [...]]]></description> <content:encoded><![CDATA[<p>We have been in business for quite a few years, and we have found out
several things that work and other that don&#8217;t in our activities. We have
had our share of successes and failures, as any other business; and we
hope to have learnt something along the way.</p><p>This post will outline the recipes that we have applied to obtain the
best results in the collaboration with our clients.</p><p><span
id="more-3356"></span></p><p><img
src="http://akosma.com/wp/wp-content/uploads/2011/09/you_icon.png"
alt="" border="0" width="170" height="170" class="alignleft size-full"
/></p><h2>Principles</h2><p>What are the principles that guide our work?</p><ul><li>To begin with, we do not work <strong>for</strong> our customers; we work <strong>with</strong> them. This means that we are both collaborating in our projects, in
equal terms, with as many expectations as our clients have.</li><li>Creating software is hard. If you &#8220;have a friend that can make your
application for 100 dollars in 2 days&#8221;, don&#8217;t call us.</li><li>If you are a &#8220;creative agency&#8221;, and &#8220;your first class client&#8221; wants an
application, and you try to push our rates down, &#8220;for the sake of our
future collaboration&#8221;, don&#8217;t bother calling us. We&#8217;re not interested.</li><li>Similarly, if you are an agency and you are going to shield us and
proxy (or &#8220;manage&#8221;) all communications between us and the final
customer, we are not interested. We only work in projects where we
have full access to the customer. We are not interested in other kinds
of collaboration.</li><li><a
href="http://akosma.com/2011/08/05/why-do-not-we-outsource-projects-overseas/">We do not outsource projects</a>. Period.</li><li>We do as much as we can to <a
href="http://akosma.com/2009/12/15/reducing-the-carbon-footprint/">reduce our carbon footprint</a>. And you
should, too.</li></ul><h2>How we work</h2><p>akosma software has a well defined workflow to help its clients bring
their ideas to life; if you are into buzzwords, you could say that we
use a mix of iterative and sequential approaches:</p><ul><li>We ask our clients for a single point-of-contact person, or a &#8220;Product
Owner&#8221; as some methodologies call it; this person will be our sole
communication proxy with the organization. We ask our clients to
always forward questions and remarks through this person at any times.
Doing so helps us work more efficiently and faster.</li><li>We ask our clients for a well defined Statement of Work. We believe
that the final product can only be as good as the Statement of Work
provided. This document must provide as many details as possible about
the final project. This helps us keep our costs low, it reduces
misunderstandings, and helps us deliver features faster.</li><li>For ad-hoc development projects, we usually work in &#8220;fixed time /
fixed price&#8221; mode. We will provide you a cost and a deadline for your
project, and we&#8217;ll stick to it (that&#8217;s why the Statement of Work is so
important!) We can also work in &#8220;time and materials&#8221; mode if you need
it.</li><li>We try to [manage project risks][5] from beginning to end. For that,
we require your commitment, understanding and collaboration.</li><li>We ask our clients to avoid email and phone as a communication and
coordination medium. We use our <a
href="http://projects.akosma.com">project management site</a> instead,
which features forums with threaded conversations, bug tracking and
wikis. This allows us to centralize all the information of the
project, as well as the communication with the client, in a single
repository, to avoid losing information in crowded email inboxes.</li><li>We provide feedback about our work continuously. Our clients can check
the advancement of the project at any time in our project management
site without even having to contact us.  Everything we do is logged in
the screens of the &#8220;Activity&#8221; panel, at any given time. This helps us
reduce interruptions, which are costly, and also helps us increase
customer satisfaction, because the client can always know what’s going
on.</li><li>We divide small projects (with a duration less than one month) in
one-week long iterations, while longer or more complex projects are
divided in two-weeks long iterations. At the end of each iteration,
the client is able to test the application in their own devices and
infrastructure, and we expect feedback from this. The clients’
feedback is fundamental; without it, we will assume that everything is
going according to plan and continue working in the next iteration.</li></ul><h2>Expectations</h2><p>From each client that we agree to work with, we have as many expectations
as you have.</p><ul><li>We expect you to provide us with clear explanations of what you need.
We mean it. In written form. With diagrams. Color. Details.
Everything.</li><li>We expect your feedback, quickly, because every week we are going to
use this feedback to make your product better.</li><li>We expect you to take care of your project as we do. In particular, do
not mess with the source code of what we provide to you: not only this
breaks the warranty (yes, we provide one), but even worse, it breaks
our trust in our relationship.</li><li>We expect that you pay our invoices in time. As simple as that.</li><li>We expect you to have a smile in your face, just like we want to have
one when we work with you. That&#8217;s why we do what we do.</li></ul><p>If you would like to work with us, then just <a
href="http://akosma.com/contact/project-request/">contact us!</a></p><p>[5]:http://akosma.com/2009/08/03/risk-management-in-iphone-projects/<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/08/05/why-do-not-we-outsource-projects-overseas/" rel="bookmark" title="August 5, 2011">Why do not we outsource projects overseas?</a></li><li><a
href="http://akosma.com/2010/07/09/digital2-0/" rel="bookmark" title="July 9, 2010">digital2.0 iPad Application</a></li><li><a
href="http://akosma.com/2010/02/24/senbei-a-fat-free-crm-iphone-client/" rel="bookmark" title="February 24, 2010">Senbei, a Fat Free CRM iPhone Client</a></li><li><a
href="http://akosma.com/2011/01/20/new-project-request-form/" rel="bookmark" title="January 20, 2011">New Project Request Form</a></li><li><a
href="http://akosma.com/2010/10/04/integrating-ios-applications-with-backend-rest-services/" rel="bookmark" title="October 4, 2010">Integrating iOS Applications with Backend REST Services</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2012/01/30/how-we-work/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Wordle 2012</title><link>http://akosma.com/2012/01/09/wordle-2012/</link> <comments>http://akosma.com/2012/01/09/wordle-2012/#comments</comments> <pubDate>Mon, 09 Jan 2012 10:52:51 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Opinion]]></category> <category><![CDATA[word cloud]]></category> <category><![CDATA[Wordle]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3347</guid> <description><![CDATA[Just like last year, here goes the Wordle cloud generated with the most important tags in this blog for 2011! Some subtle differences appear, don&#8217;t you think? Similar Posts: Wordle Senbei 1.3 hits the App Store! Attending SenchaCon 2011 QCon London 2012: Call for Papers in the Cross-Platform Mobile Track GOTO Copenhagen 2012 &#8211; Call [...]]]></description> <content:encoded><![CDATA[<p>Just like <a
href="http://akosma.com/2011/02/08/wordle/">last year</a>, here goes the <a
href="http://www.wordle.net/">Wordle cloud</a> generated with the most important tags in this blog for 2011!</p><p><img
src="http://akosma.com/wp/wp-content/uploads/2012/01/wordle2012.png" alt="Wordle2012" border="0" width="620" height="297" class="alignleft size-full" /></p><p>Some subtle differences appear, don&#8217;t you think? <img
src='http://akosma.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/02/08/wordle/" rel="bookmark" title="February 8, 2011">Wordle</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/10/19/attending-senchacon-2011/" rel="bookmark" title="October 19, 2011">Attending SenchaCon 2011</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/2012/02/06/goto-copenhagen-2012-call-for-speakers/" rel="bookmark" title="February 6, 2012">GOTO Copenhagen 2012 &#8211; Call for Speakers!</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2012/01/09/wordle-2012/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>A Shift In The Market Towards Mobile Web Apps</title><link>http://akosma.com/2011/09/13/a-shift-in-the-market-towards-mobile-web-apps/</link> <comments>http://akosma.com/2011/09/13/a-shift-in-the-market-towards-mobile-web-apps/#comments</comments> <pubDate>Tue, 13 Sep 2011 06:31:53 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[Mobile Web]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[application]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[market]]></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=3082</guid> <description><![CDATA[Mobile apps are hardly something new these days. Mobile app stores are ubiquitous, and download and &#8220;number of apps&#8221; stats do not matter anymore. &#8220;Mobile First&#8221; is now, more than just a guideline, simply the way business work. In Switzerland, the big craze of mobile apps began with the introduction of the iPhone in June [...]]]></description> <content:encoded><![CDATA[<p><strong>Mobile apps are hardly something new these days</strong>. Mobile app stores
are ubiquitous, and download and &#8220;number of apps&#8221; stats do not matter
anymore. &#8220;Mobile First&#8221; is now, more than just a guideline, simply the
way business work.</p><p>In Switzerland, the big craze of mobile apps began with the introduction
of the iPhone in June 2008, and then the waves of new Android devices
that have been introduced in the past 2 years. Everybody has a
smartphone these days, and now everyone is jumping to buy a tablet
(usually an iPad) as fast as they can.</p><p>But the mobile market is <strong>highly fragmented</strong>. I&#8217;m not talking about
the Android hardware market, which is inherently fragmented by nature;
we are talking about the app market in general. Companies want to have
their services and products in as many smartphone platforms as possible
these days, and the iPhone is no longer enough.</p><p>To put things in context, the <a
href="http://www.asymco.com/category/industry/">latest statistics</a> of smartphone
platforms roughly show that:</p><ul><li>40% of the market is held by Android devices, with a large proportion
of Samsung devices, and apparently with some signs of starvation;</li><li>30% by iOS, with a small growing trend; not taking into account the
iPod touch and the iPad, which are iOS devices, but not really
smartphones; and</li><li>20% by BlackBerry devices, although this proportion is actually on a
negative slope these days.</li></ul><p>If we consider the &#8220;mobile market&#8221; as the sum of smartphones and
tablets, and if we include the iPod touch into the mix, then iOS holds
more than 40% of the whole mobile market. Impressive, but still, not
even half of the market.</p><p>Given this split, companies want to <strong>maximize the return of their
investments</strong>. In other words, they want more bang for their buck.  They
are still going to spend money for mobile applications, for sure; but
they are not so sure these days about the &#8220;iPhone only&#8221; or even &#8220;iPhone
first&#8221; approach that was common until now; <strong>they want an app that works
in as many platforms as possible</strong>. Certainly the grim economic situation
also plays a role in these decisions!</p><p>This is a reality; this is something that we have been experiencing for
the past months, and the trend is going in this direction. <strong>2012 is
going to be the year of the mobile cross-platform app</strong>, but because the
market said so, not because some technology fashionista decided it, so
we need to prepare to bring this vision into reality.</p><p>In our case, at akosma software we have chosen a few technologies to bet
our company on:</p><ul><li>The whole <a
href="http://mobilehtml5.org/">HTML5 standard</a>, including the amazing suite of tools that
the new generation of browsers are making available for us!</li><li><a
href="http://www.sencha.com/">Sencha Touch</a>, the mobile evolution of the Ext JavaScript
framework of yesteryear, of which <a
href="http://kosmaczewski.net/2007/07/11/ext/">Adrian has been a great fan for
years!</a></li><li><a
href="http://jquerymobile.com/">jQuery Mobile</a>, the promising new framework based on the non less
amazing <a
href="http://jquery.com/">jQuery</a> project!</li><li><a
href="http://www.phonegap.com/">PhoneGap</a>, the open source mobile web app packaging framework
now becoming a de-facto standard!</li></ul><p>Are we dropping the iOS platform for web technologies? <strong>Not at all;</strong> we
are still going to provide <a
href="http://akosma.com/services/">iOS application development services</a>,
simply because (at least right now) not everything can be done with web
apps; but we are proud to add Sencha, jQuery Mobile and PhoneGap as part
of our formal offering, because we firmly believe in the huge potential
of these platforms.</p><p>Moreover, some clients still want to provide custom-tailored experiences
to iOS devices, and we fully support those initiatives with our skills
and imagination!</p><p>In the short term, watch out for this:</p><ul><li><a
href="http://skillsmatter.com/podcast/os-mobile-server/native-cross-platform/js-2661">Adrian is going to talk</a> about web apps from an iOS developer
perspective at a <a
href="http://skillsmatter.com/">SkillsMatter</a> event in London, on November 22nd.</li><li>We will be attending <a
href="http://www.sencha.com/senchacon2011">SenchaCon 2011</a> in Austin TX (USA), from
October 23rd to the 26th, to learn more about Sencha and the next
generation of web technologies.</li><li>We will be presenting in the next <a
href="http://www.developermarch.com/mods/">Mobile Developer Summit</a> in
Bangalore, India, in November 2nd.</li></ul><p>In the next few months, expect more around web technologies from akosma
software!</p><p><strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/03/31/talking-at-the-scandinavian-developer-conference-2011/" rel="bookmark" title="March 31, 2011">Talking at the Scandinavian Developer Conference 2011</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/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/10/03/mobile-development-with-jquery-sencha-and-phonegap-15-17-november-2011/" rel="bookmark" title="October 3, 2011">Mobile Development with jQuery, Sencha and PhoneGap, 15 &#8211; 17 November 2011</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></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/09/13/a-shift-in-the-market-towards-mobile-web-apps/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Why do not we outsource projects overseas?</title><link>http://akosma.com/2011/08/05/why-do-not-we-outsource-projects-overseas/</link> <comments>http://akosma.com/2011/08/05/why-do-not-we-outsource-projects-overseas/#comments</comments> <pubDate>Fri, 05 Aug 2011 14:14:25 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[offshoring]]></category> <category><![CDATA[outsourcing]]></category> <guid
isPermaLink="false">http://akosma.com/?p=3040</guid> <description><![CDATA[Given the number of times we have been asked about this subject, and the puzzled looks after we give an answer, here goes an official statement: akosma software does not outsource its projects. Against the common opinion of most IT newspapers and blogs, we think there are several reasons to not doing it: Outsourcing is [...]]]></description> <content:encoded><![CDATA[<p>Given the number of times we have been asked about this subject, and the
puzzled looks after we give an answer, here goes an official statement:</p><p><strong>akosma software does not outsource its projects.</strong></p><p>Against the common opinion of most IT newspapers and blogs, we think
there are several reasons to not doing it:</p><ol><li>Outsourcing is a modern variant of that old north-south dependency
relationship. In the XIXth century it was about cotton, coal or food.
These days is about software. But the schema is the same; the
north buys cheap goods and services from the south, but the added value
remains always in the north. We believe that <strong>this state of things is
one of the main reasons of the current state of the world</strong>; and thus,
we prefer to teach the south how to create their own value, rather than
selling it to companies who will, in turn, build a name upon your own
effort. We think that <strong>talking about sustainable development</strong> also
means refraining from outsourcing.</li><li>Making software is our core business. We do not think that
outsourcing our core business is a good idea. We have seen many software
companies struggle with the management of outsourced projects, and we do
not want that. We do not care if you are agile, waterfallish or CMMI
level 42.</li><li>We work in a close relationship with our clients; we seek their input
several times a day, we ask for their feedback continuously, and we
insist in having them participate in the development of their
products. Working in an outsourcing schema adds a third layer of
communication in the whole process, and we do not work well in such situations.</li></ol><p>Are we losing money in the process? Sure; but that money would be
built upon the effort of others than us. We believe in (and work with)
networks of independent peers, providing value at each step of the way:
designers, user experience experts, marketing people, creative teams.
Not remote companies where the only driving mechanism for the whole
relationship is a mere economic advantage.</p><p>At akosma software we do not work <strong>for</strong> others, neither want others to
work <strong>for</strong> us: we work <strong>with</strong> others, both clients and suppliers, in
equal terms. The final product is a joint effort of equal commons. That&#8217;s how we see
things.</p><p>Of course, this is our policy, and your mileage and opinions may differ
from ours. Maybe outsourcing works in your case; well, good for you, but
it definitely does not fit our values, that&#8217;s all.</p><p>PS: message to all outsourcing companies and offshoring firms anywhere
in the planet; you can stop contacting us (phone, email, etc). We are
not going to work with you, for the reasons above. We think you should
probably start developing your own products and services rather than
selling them to Europe or the USA.<strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/05/31/immedia-the-leader-mobile-solutions-provider-in-south-africa/" rel="bookmark" title="May 31, 2011">immedia: the leader mobile solutions provider in South Africa</a></li><li><a
href="http://akosma.com/2012/01/30/how-we-work/" rel="bookmark" title="January 30, 2012">How we work</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/2010/12/29/retrospective-2010/" rel="bookmark" title="December 29, 2010">Retrospective 2010</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/08/05/why-do-not-we-outsource-projects-overseas/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Wordle</title><link>http://akosma.com/2011/02/08/wordle/</link> <comments>http://akosma.com/2011/02/08/wordle/#comments</comments> <pubDate>Tue, 08 Feb 2011 22:16:36 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Opinion]]></category> <category><![CDATA[word cloud]]></category> <category><![CDATA[Wordle]]></category> <guid
isPermaLink="false">http://akosma.com/?p=2899</guid> <description><![CDATA[Word cloud created with Wordle. Similar Posts: Wordle 2012 Mobile Application Training in South Africa More Mobile Application Training in South Africa Soft-Shake 2010 Announcing EERV cal, an iPhone, Android and Web Application!]]></description> <content:encoded><![CDATA[<p>Word cloud created with <a
target="_blank" href="http://www.wordle.net/">Wordle</a>.</p><p><img
src="http://akosma.com/wp/wp-content/uploads/2011/02/wordle.png" alt="Wordle" border="0" width="620" height="550" class="alignleft size-full" /> <strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2012/01/09/wordle-2012/" rel="bookmark" title="January 9, 2012">Wordle 2012</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/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/2010/10/05/soft-shake-2010/" rel="bookmark" title="October 5, 2010">Soft-Shake 2010</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></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2011/02/08/wordle/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Article dans com.in Magazine</title><link>http://akosma.com/2010/10/12/article-dans-com-in-magazine/</link> <comments>http://akosma.com/2010/10/12/article-dans-com-in-magazine/#comments</comments> <pubDate>Tue, 12 Oct 2010 05:40:57 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Android]]></category> <category><![CDATA[Français]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Print]]></category> <category><![CDATA[Aberla]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[com.in mag]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[Press]]></category> <category><![CDATA[print]]></category> <category><![CDATA[Windows Mobile]]></category> <category><![CDATA[Zürich]]></category> <guid
isPermaLink="false">http://akosma.com/?p=2737</guid> <description><![CDATA[Le 7 septembre dernier, à Zurich, s&#8217;est tenu &#8220;Mobile App Stores&#8221;, un colloque à propos des plus importants systèmes de distribution de software pour téléphones mobiles. Au programme, des présentations de l&#8217;App Store de Apple, de l&#8217;App World de BlackBerry, l&#8217;Ovi Store de Nokia et également sur des applications web mobiles, construites avec les derniers [...]]]></description> <content:encoded><![CDATA[<blockquote> Le 7 septembre dernier, à Zurich, s&#8217;est tenu &#8220;Mobile App Stores&#8221;, un colloque à propos des plus importants systèmes de distribution de software pour téléphones mobiles. Au programme, des présentations de l&#8217;App Store de Apple, de l&#8217;App World de BlackBerry, l&#8217;Ovi Store de Nokia et également sur des applications web mobiles, construites avec les derniers standards tels que HTML5 et CSS3.
Le ton a été donné d&#8217;emblée. Marc Carrette et Rami Omari de Sogeti (du groupe Cap Gemini) ont clairement mis en relief l&#8217;impact économique qu&#8217;ont eu les App Stores depuis 2005. A ce jour, plus de 250&#8217;000 applications y sont enregistrées. Ce n&#8217;est donc pas un hasard si Apple considère son App Store comme &#8220;le plus important événement dans l&#8217;histoire du software mobile.&#8221;</blockquote><p>Article paru dans le numéro d&#8217;Octobre 2010 de <a
target="_blank" href="http://www.cominmag.ch/">com.in Magazine</a> (télécharger le <a
target="_blank" href="http://akosma.com/press/Cominmag2010.pdf">PDF</a>) <strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2010/06/17/panorama-et-enjeux-du-marche-des-applications-iphone/" rel="bookmark" title="June 17, 2010">Rezonance First: Panorama et enjeux du marché des applications iPhone</a></li><li><a
href="http://akosma.com/2010/06/05/applications-iphone-il-est-temps-de-s%e2%80%99y-mettre/" rel="bookmark" title="June 5, 2010">Applications iPhone: il est temps de s’y mettre!</a></li><li><a
href="http://akosma.com/2010/03/31/presentation-de-lapplication-iphone-thierryweber-com/" rel="bookmark" title="March 31, 2010">Application iPhone ThierryWeber.com</a></li><li><a
href="http://akosma.com/2010/04/21/how-to-buy-ipad-apps-outside-of-the-us/" rel="bookmark" title="April 21, 2010">How to buy iPad apps outside of the US</a></li><li><a
href="http://akosma.com/2010/10/05/soft-shake-2010/" rel="bookmark" title="October 5, 2010">Soft-Shake 2010</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2010/10/12/article-dans-com-in-magazine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>initWithContentsOfURL: Methods Considered Harmful</title><link>http://akosma.com/2010/05/28/initwithcontentsofurl-methods-considered-harmful/</link> <comments>http://akosma.com/2010/05/28/initwithcontentsofurl-methods-considered-harmful/#comments</comments> <pubDate>Fri, 28 May 2010 16:45:59 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Opinion]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[asynchronous]]></category> <category><![CDATA[iPad]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Network]]></category> <category><![CDATA[Objective-C]]></category> <category><![CDATA[synchronous]]></category> <guid
isPermaLink="false">http://akosma.com/?p=2486</guid> <description><![CDATA[As I promised on Twitter, here&#8217;s a small discussion about the problems brought by the &#8220;initWithContentsOfURL:&#8221; family of methods. A quick search in the Xcode documentation browser brings in an interesting list of classes including this initializer (with or without additional parameters): NSArray NSManagedObjectModel NSData NSDictionary NSXMLParser NSMappingModel NSString AVAudioPlayer Don&#8217;t get me wrong, the [...]]]></description> <content:encoded><![CDATA[<p>As I <a
target="_blank" href="http://twitter.com/akosma/status/14715706200">promised on Twitter</a>, here&#8217;s a small discussion about the problems brought by the &#8220;initWithContentsOfURL:&#8221; family of methods.</p><p><img
src="http://akosma.com/wp/wp-content/uploads/2009/12/3709438002_021cb145181.jpg" alt="3709438002_021cb14518.jpg" border="0" width="170" height="255" class="alignleft size-full" /></p><p>A quick search in the Xcode documentation browser brings in an interesting list of classes including this initializer (with or without additional parameters):</p><ul><li>NSArray</li><li>NSManagedObjectModel</li><li>NSData</li><li>NSDictionary</li><li>NSXMLParser</li><li>NSMappingModel</li><li>NSString</li><li>AVAudioPlayer</li></ul><p>Don&#8217;t get me wrong, the title of this post is a bit misleading; it&#8217;s not that this method is always problematic, particularly when the URL passed as parameter has been built using the fileURLWithPath: family of initializers. In this case, the URL will point to a local resource, and the worst thing that can happen in that case is that the filename is wrong, or that the file does not exist for some reason (NSFileManager to the rescue!).</p><p>However, when using external URLs referencing resources somewhere over the network, <strong>using this method is definitely a recipe for disaster.</strong></p><p><span
id="more-2486"></span> The main problem with these methods, of course, is the fact that they are <strong>synchronous</strong>; this means that the thread executing them (usually the UI thread) will block completely until they return, and in most applications this means that you are de-facto blocking the whole application for an unknown amount of time. This means that no buttons or UI widgets will react to input, no navigation will be possible, no touch events will be delivered or executed, nothing will happen at all until the network operation completes.</p><p>Even worse; when using initWithContentsOfURL:, there is no timeout, there is no meaningful feedback for network failures, and no way for the user to cancel the current network operation. This last factor justifies by itself not using initWithContentsOfURL: at all; you must never ship code that leads to a bad user experience. Your users will resent this and will complain!</p><p>As Joel Spolsky explained in his classic article <a
target="_blank" href="http://www.joelonsoftware.com/articles/fog0000000041.html">Three Wrong Ideas From Computer Science</a>,</p><blockquote>One example of network transparency is the famous RPC (remote procedure call), a system designed so that you can call procedures (subroutines) running on another computer on the network exactly as if they were running on the local computer. An awful lot of energy went into this. Another example, built on top of RPC, is Microsoft&#8217;s Distributed COM (DCOM), in which you can access objects running on another computer as if they were on the current computer.
Sounds logical, right?
Wrong.
There are three very major differences between accessing resources on another machine and accessing resources on the local machine:<ol><li>Availability,</li><li>Latency, and</li><li>Reliability.</li></ol></blockquote><p>(BTW, read this article, it&#8217;s really a good one, like many others in his blog)</p><p>In summary, never assume that the network is available, never assume that anything behind the network is available, and never assume that a network has any particular speed. This is particularly true in the case of mobile platforms, where network conditions can vary tremendously from one minute to the other!</p><p>The problem with the initWithContentsOfURL: methods is that some online tutorials use them as a quick-and-dirty way to load resources from the network (for <a
target="_blank" href="http://icodeblog.com/2009/06/19/using-nsxmlparser-to-pull-uiimages-from-the-web/">example this one on iCodeBlog</a>), and I have myself seen production code using this method.</p><p><strong>This is very, very bad.</strong> Using initWithContentsOfURL: with remote network resources in a tutorial like this is simply a horrendous, almost irresponsible approach towards developers new to the iPhone platform.</p><p>You must not use synchronous connections in any way in your code, unless you are 100% sure that you are running it in a non-UI thread &#8211; and even so, as <a
target="_blank" href="http://iphonedevelopment.blogspot.com/2010/05/downloading-images-for-table-without.html">Jeff LaMarche explained recently</a>, you should avoid such multithreaded approaches. The NSRunLoop architecture of Cocoa and Cocoa touch allows you to bypass threading altogether when dealing with networking operations. Remember this! And read Jeff&#8217;s article for more details.</p><p>This exact same problem can also be created with other APIs and libraries, for example when using NSURLConnection&#8217;s sendSynchronousRequest:returningResponse:error: method (as explained <a
target="_blank" href="http://theappleblog.com/2010/05/28/iphone-dev-sessions-responsive-web-enabled-iphone-apps/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+TheAppleBlog+%28TheAppleBlog%29">today in The Apple Blog</a>.)</p><p><strong>Do not block the main UI thread.</strong> Write this on your whiteboard, on a post-it on your computer monitor, in your agenda with a reminder every day. Do not use this approach. <a
target="_blank" href="http://twitter.com/0xced/status/14717929660">As Cédric said</a>, these methods should only be used for prototyping!</p><p>One popular example of a network library that support asynchronous connections is <a
target="_blank" href="http://allseeing-i.com/ASIHTTPRequest/">ASIHTTPRequest</a>, which I tend to use in nearly all my projects (instead of the standard NSURLConnection classes bundled in Cocoa and Cocoa Touch.) I prefer it because it has a nicer, smaller interface, it&#8217;s fast (I&#8217;ve benchmarked it in my <a
target="_blank" href="http://github.com/akosma/iPhoneWebServicesClient">iPhone Web Services Client</a> demo project on Github), and it provides handy queueing capabilities. FTW!</p><p>By the way, Ben Copsey (the creator of ASIHTTPRequest) <a
target="_blank" href="http://allseeing-i.com/A-possible-replacement-for-ASINetworkQueue">has published today an article in his blog</a>, in which he exposes the approaches used to queue network connections in his library. Designing a library for concurrent, queued network connections is not trivial, and his current approach (subclassing NSOperationQueue) might soon be deprecated for a new, NSRunLoop-y, more Cocoa-friendly, way.</p><p>In any case, I hope I have made my point: avoid synchronous operations when loading content from the network, remember what Joel said, and use a library providing asynchronous connections. Happy coding!</p><p>PS: by the way, the title of this blog post is a reference to many other classic articles, so many that there&#8217;s even a <a
href="http://en.wikipedia.org/wiki/Considered_harmful" target="_blank">Wikipedia entry about them</a> and a <a
href="http://meyerweb.com/eric/comment/chech.html" target="_blank">great rant about them</a> by Eric Meyer! <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/2010/10/11/how-knowing-c-and-c-can-help-you-write-better-iphone-apps-part-1/" rel="bookmark" title="October 11, 2010">How knowing C and C++ can help you write better iPhone apps, part 1</a></li><li><a
href="http://akosma.com/2010/02/10/iphone-dev-day-in-geneva-on-april-28th/" rel="bookmark" title="February 10, 2010">iPhone Dev Day in Geneva on April 28th</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/17/the-dawn-of-couch-computing/" rel="bookmark" title="February 17, 2010">The Dawn of Couch Computing</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2010/05/28/initwithcontentsofurl-methods-considered-harmful/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>The Dawn of Couch Computing</title><link>http://akosma.com/2010/02/17/the-dawn-of-couch-computing/</link> <comments>http://akosma.com/2010/02/17/the-dawn-of-couch-computing/#comments</comments> <pubDate>Wed, 17 Feb 2010 09:46:13 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[iPad]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[technology]]></category> <guid
isPermaLink="false">http://akosma.com/?p=2359</guid> <description><![CDATA[I haven&#8217;t blogged about the iPad until now on purpose; I wanted to let the waters calm down, as January&#8217;s announcement was certainly one that left nobody indifferent. The iPad is a disruptive device. Not in the sense of groundbreaking, because there is nothing on the iPad that you couldn&#8217;t find in other devices. I [...]]]></description> <content:encoded><![CDATA[<p>I haven&#8217;t blogged about the iPad until now on purpose; I wanted to let the waters calm down, as January&#8217;s announcement was certainly one that left nobody indifferent.</p><p>The iPad is a disruptive device. Not in the sense of groundbreaking, because there is nothing on the iPad that you couldn&#8217;t find in other devices. I mean disruptive in the sense of creating a new <a
target="_blank" href="http://www.blueoceanstrategy.com/">blue ocean</a>, a new category of devices where the interaction with the machine is done through a completely different kind of approach. Apple is, once again, redefining the word &#8220;personal computer&#8221;, setting itself apart from the competition, and making us drool all over again.</p><p><img
src="http://akosma.com/wp/wp-content/uploads/2010/02/ipad_hero_20100127.jpg" alt="ipad_hero_20100127.jpg" border="0" width="620" height="395" class="alignleft size-full" /></p><p>The iPad is the dawn of <a
target="_blank" href="http://twitter.com/0xced/status/8915818053">couch computing</a>, with all what this phrase means. <span
id="more-2359"></span> The critics to the iPad are doing the same level of noise you can hear whenever Apple releases a new product. Remember: it all started with <a
target="_blank" href="http://bethesignal.org/blog/2009/01/13/qotd-john-c-dvorak/">Dvorak critisizing the first Macintosh because of the mouse</a>. Then it continued with the <a
target="_blank" href="http://www.everymac.com/systems/apple/imac/faq/imac-g3-pci-based-chrp-rom-why-no-floppy.html">iMac not having a floppy disk</a>. Then it was the iPod and its hard drive or its lack of a color screen. Finally it was the iPhone, which has generated as many critics as sales. <a
target="_blank" href="http://www.fastcompany.com/article/quiz-are-these-comments-about-2001-ipod-or-2010-ipad">All what is written around the iPad follows the same pattern.</a></p><p>To help to filter the noise produced by all the opinions, keep in mind the following elements:</p><ul><li>We geeks are a very small portion of the human population. A noisy one, but very small anyway. Our opinions are biased and most of the time are not the same as the average user. The iPad is not a device for geeks. This is a device for common people, who want a lightweight computer that starts fast, can be used on a couch, looks beautiful and can even be used to create small documents.</li><li>The average user wants to hold in their hands whatever new gadget seen in the movies. <a
target="_blank" href="http://www.boingboing.net/2010/02/02/arthur-c-clarks-2001.html">One of the best reviews of the iPad I&#8217;ve read so far</a> stated that the device is a step in a trend to bring gadgets found in &#8220;Star Trek&#8221;, &#8220;Star Wars&#8221; or &#8220;2001&#8243; to the market.</li><li>The iPad is the ultimate simplification of the user experience. This device completely isolates the user from the underlying hardware. The user interface is the computer. <a
target="_blank" href="http://twitter.com/gil_les/status/9193995097">No file system</a>, no files, no folders, just apps, documents within those apps, and as much multimedia as possible: videos, images, sound. The same hardware is used for both primary input and primary output.</li></ul><p>Is there a use case for the iPad? You are pretty damn sure there is: right now I&#8217;m typing this blog post on MarsEdit on a train. I use my MacBook Pro for that. But I know I would use an iPad instead if I had it. I know designers planning to buy some iPads to showcase their portfolio in them. Not to mention on-demand business opportunities, gaming, social networking, and much more.</p><p>Couch computing means more than dumb consumption of media: it is also a whole new relationship with the way humans create and share information. The iPad is the first real electronic canvas, and its übersimplification of the user interface, together with an übersimplification of the distribution of software, will create a whole new market. A whole, new, different paradigm. The iPad is not a computer, it is not a netbook, it is not a laptop. It&#8217;s an iPad. The user experience patterns will be different, the use cases are yet unforeseen.</p><p>I have been contacted by many clients already to take their iPhone apps to the next level, and some ideas are just incredible. In any case, akosma software is your partner of choice for your next iPad application! Contact us, we&#8217;d love to hear about your next idea.</p><p>PS: by the way, did you know that in the next Dev Days for iPhone in <a
target="_blank"  href="http://iphonedevday.com/iphone-london-2010/">London</a> and <a
href="http://iphonedevday.com/iphone-geneva-2010/" target="_blank">Geneva</a> (if the iPad NDA drops) <a
target="_blank" href="http://iphonedevday.com/iphone-geneva-2010/speaker/Daniel+Steinberg">Daniel Steinberg</a> will talk about the iPad instead of Core Data? <strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2010/04/13/mobile-advertising-by-edipresse/" rel="bookmark" title="April 13, 2010">Mobile Advertising, by Edipresse</a></li><li><a
href="http://akosma.com/2010/07/09/digital2-0/" rel="bookmark" title="July 9, 2010">digital2.0 iPad Application</a></li><li><a
href="http://akosma.com/2011/02/17/nib2objc-featured-on-the-changelog/" rel="bookmark" title="February 17, 2011">nib2objc Featured on The Changelog</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><li><a
href="http://akosma.com/2010/04/21/how-to-buy-ipad-apps-outside-of-the-us/" rel="bookmark" title="April 21, 2010">How to buy iPad apps outside of the US</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2010/02/17/the-dawn-of-couch-computing/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>10 Things Every iPhone App Designer Should Know</title><link>http://akosma.com/2009/12/21/10-things-every-iphone-app-designer-should-know/</link> <comments>http://akosma.com/2009/12/21/10-things-every-iphone-app-designer-should-know/#comments</comments> <pubDate>Mon, 21 Dec 2009 11:28:48 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPhone]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[design]]></category> <category><![CDATA[development]]></category> <category><![CDATA[howto]]></category> <category><![CDATA[tips]]></category> <guid
isPermaLink="false">http://akosma.com/?p=2238</guid> <description><![CDATA[Design is a fundamental part of iPhone app development. It is, without any doubt, the difference between a crappy and a great application. It can be the discriminating factor of life and death on the App Store, and the competition is brilliant and strong. The best teams, like Tapbots, Sophiestication or Jilion have understood that [...]]]></description> <content:encoded><![CDATA[<p>Design is a fundamental part of iPhone app development. It is, without any doubt, the difference between a crappy and a great application. It can be the discriminating factor of life and death on the App Store, and the competition is brilliant and strong. The best teams, like <a
target="_blank" href="http://tapbots.com/">Tapbots</a>, <a
target="_blank" href="http://www.sophiestication.com/">Sophiestication</a> or <a
target="_blank" href="http://jilion.com/">Jilion</a> have understood that design is part of the process: not a nice to have, and certainly not an afterthought.</p><p><a
target="_blank" href="http://www.flickr.com/photos/thetechbuzz/3709438002/"><img
src="http://akosma.com/wp/wp-content/uploads/2009/12/3709438002_021cb145181.jpg" alt="3709438002_021cb14518.jpg" border="0" width="170" height="255" class="alignleft size-full" /></a></p><p>However, this does not mean that designers coming from a web or print background are ready to tackle design projects for the iPhone ipso facto. <a
target="_blank" href="http://akosma.com/2008/12/23/dirty-little-secret/">I&#8217;ve seen too many horrors so far</a>, and that is why I am making public this list of tips and tricks that I keep repeating to all the designers I work with.</p><ol><li><strong>Read the iPhone design guidelines.</strong> Thoroughly. Twice or even better, three times until you know them by heart. Depending on the budget and the timeline, it might be impossible to create custom components or to achieve all your fancy animations and effects; in that case, you should stick to the UIKit widgets catalog for your designs, including all of their limitations. Once you&#8217;ve read the guidelines, buy these books and read some more:<ul><li><a
target="_blank" href="http://www.amazon.com/Programming-Iphone-User-Experience-Boudreaux/dp/0596155468%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596155468">Programming the iPhone User Experience</a>, by Tody Boudreaux;</li><li><a
target="_blank" href="http://www.amazon.com/Best-Iphone-Apps-Discriminating-Downloaders/dp/059680427X%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D059680427X">Best iPhone Apps</a>, by Clark Josh;</li><li><a
target="_blank" href="http://www.amazon.com/iPhone-User-Interface-Design-Projects/dp/1430223596%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1430223596">iPhone User Interface Design Projects</a> by David Barnard, Joachim Bondo and others.</li></ul></li><li><strong>The iPhone is more like a motion picture than a static image.</strong> Even the most basic applications feature animation, beautiful scrolling and swiping and pinching. Thus, that gorgeous Photoshop file is not enough; you will have to explain to me your idea, frame by frame, like if you were writing a <strong>screenplay</strong>; every animation, every step, every transition must be as documented as possible for the developers to be able to bring your design to life.</li><li><strong>Fingers are bigger than mouse pointers.</strong> The minimum size for an area that should be tapped is 44 pixels wide. Smaller buttons or icons are simply unusable. And since we&#8217;re talking about sizes, the status bar is 20 pixels high, toolbars and navigation bars are 44 pixels high.</li><li><strong>The iPhone has a limited set of fonts.</strong> Not all the fonts you have on Photoshop are available on the iPhone, and at least so far, there is not an easy way to integrate external fonts in an iPhone application. Grab a copy of <a
target="_blank" href="http://rooifonts.com/">RooiFonts</a> and learn which fonts are available on the iPhone. And <a
target="_blank" href="http://daringfireball.net/2008/11/iphone_likeness">avoid Marker Felt altogether</a>. Please.</li><li><strong>The four golden screen sizes:</strong><ul><li>Portrait without status bar: 320 x 480</li><li>Portrait with status bar: 320 x 460</li><li>Landscape without status bar: 480 x 320</li><li>Landscape with status bar: 480 x 300</li></ul></li><li><strong>Think PNG.</strong> Whenever you have to provide graphics for the iPhone, remember that PNG is the best solution. It supports transparency, lossless compression, lots of colours, and the iPhone can optimize them even further. By the way, every app needs a &#8220;Default.png&#8221; file (shown during startup) of one of the four golden screen sizes enumerated above. And an &#8220;Icon.png&#8221; file, 57 x 57 pixels wide.</li><li><strong>Create your icons using the biggest possible resolution you can.</strong> The App Store requires you to provide a 512 x 512 TIFF file, at 72 DPI, but if your application is successful, they might ask for a higher resolution file for a commercial. Your best idea then is to <a
target="_blank" href="http://www.flickr.com/photos/39995160@N03/3683399203/">design your icon as if it were to be printed in a huge banner</a>.</li><li><strong>The status bar on top of the application can be removed altogether</strong>. Unfortunately it can&#8217;t be customized beyond a small set of options, and basically you can only have it gray, black or translucent. You can apply a bit of color to the status bar by having a coloured view underneath, but it might not look the way you want.</li><li><strong>The iPhone OS provides some functionality for free</strong>, including all the widgets and some more obscure behaviour, for example, tapping the status bar makes lists scroll to the top, and tapping a tab bar item makes the navigation return to the root controller. Some other things, like Convertbot-like &#8220;scrollwheel menus&#8221; are not part of the toolkit and might take a bit longer to create.</li><li><strong>Photoshop is not enough.</strong> Use a <a
target="_blank" href="http://akosma.com/2009/10/27/roundup-of-iphone-app-sketchbooks/">paper-based design sketchbook</a>, preferably one with a stencil, and draw your application manually. This will help you figure out features and interaction without committing to a visual design. Then ask your nearest developer for the iPhone SDK, install it and play with Interface Builder. I said play: don&#8217;t try to understand everything you see, because it&#8217;s a rather complex tool. But you can drag and drop components, and the inspector allows you to change styles and move things around. You will learn a lot, and most importantly, you will see things through the eyes of a developer.</li></ol><p>I&#8217;d like to hear more tips and tricks. Feel free to leave them in the comments below! <strong>Similar Posts:</strong></p><ul
class="similar-posts"><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><li><a
href="http://akosma.com/2010/07/09/digital2-0/" rel="bookmark" title="July 9, 2010">digital2.0 iPad Application</a></li><li><a
href="http://akosma.com/2010/07/26/migrating-iphone-3-x-apps-to-ipad-and-ios-4-0/" rel="bookmark" title="July 26, 2010">Migrating iPhone 3.x apps to iPad and iOS 4.0</a></li><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/2010/07/18/more-nib2objc-fun/" rel="bookmark" title="July 18, 2010">More nib2objc fun</a></li></ul>]]></content:encoded> <wfw:commentRss>http://akosma.com/2009/12/21/10-things-every-iphone-app-designer-should-know/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>That Mobile Programming Mess</title><link>http://akosma.com/2009/11/25/that-mobile-programming-mess/</link> <comments>http://akosma.com/2009/11/25/that-mobile-programming-mess/#comments</comments> <pubDate>Wed, 25 Nov 2009 06:45:53 +0000</pubDate> <dc:creator>Adrian Kosmaczewski</dc:creator> <category><![CDATA[iPhone]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[App Store]]></category> <category><![CDATA[BlackBerry]]></category> <category><![CDATA[Business]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[emulator]]></category> <category><![CDATA[Windows Mobile]]></category> <category><![CDATA[Xcode]]></category> <guid
isPermaLink="false">http://akosma.com/?p=440</guid> <description><![CDATA[Let&#8217;s be honest. 3 months ago I said that it wasn&#8217;t a good time to be an iPhone developer. Today, it looks like being one sucks every day a bit more. This article will dive into the alternatives, horrors, breakpoints, misconceptions, IDEs, sadness, hope, USB cables, and all those different factors that are shaping this [...]]]></description> <content:encoded><![CDATA[<p>Let&#8217;s be honest. 3 months ago I said that <a
href="http://akosma.com/2009/08/03/risk-management-in-iphone-projects/">it wasn&#8217;t a good time to be an iPhone developer</a>. Today, it looks like being one sucks every day a bit more. This article will dive into the alternatives, horrors, breakpoints, misconceptions, IDEs, sadness, hope, USB cables, and all those different factors that are shaping this thing called mobile software development market.</p><h2>1) iPhone</h2><p>First we had <a
href="http://www.rogueamoeba.com/utm/2009/11/13/airfoil-speakers-touch-1-0-1-finally-ships/">Rogue Amoeba</a> and <a
href="http://www.techcrunch.com/2009/11/11/joe-hewitt-developer-of-facebooks-massively-popular-iphone-app-quits-the-project/">Joe Hewitt</a> leaving the App Store, and then we have the <a
href="http://gizmodo.com/5405978/iphone-apps-have-to-be-approved-by-robots-now-too">autobot in the review process</a> rejecting apps <a
href="http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139">including Joe&#8217;s Three20 library</a> (which is a highly ironic fact, if you think about it), and then rejecting apps with <a
href="http://twitter.com/zenoc/status/5856233410">method or property names apparently similar</a> to those of private APIs, then <a
href="http://www.tuaw.com/2009/11/04/developers-report-a-moment-of-upside-down-app-rankings-now-retu/">app rankings going bezerk</a> for a little while, then the <a
href="http://www.theiphoneblog.com/2009/11/24/itunes-app-store-release-date-sorting-sorta-broken/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+TheIphoneBlog+%28The+iPhone+Blog%29&#038;utm_content=Google+Reader">release dates having hiccups</a>, and so on, and so on.</p><p>All of this sucks. Ask <a
href="http://paulgraham.com/apple.html">Paul Graham</a> if you don&#8217;t believe me. And check <a
href="http://developers.enormego.com/view/appstore_improvements?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+EnormegoDevelopers+%28Enormego+Developer+Blog%29&#038;utm_content=Google+Reader">the improvements suggested by Enormego</a>. There is a consensus about the fact that things aren&#8217;t working &#8211; at least from the developers&#8217; point of view.</p><p>However, let&#8217;s be even more honest, things don&#8217;t look better on the other side of the fence. <span
id="more-440"></span></p><h2>2) Web Apps</h2><p><a
href="http://www.quirksmode.org/blog/archives/2009/11/apple_is_not_ev.html">According to Peter-Paul Koch</a> (of <a
href="http://www.quirksmode.org/">Quirksmode</a> fame, all in all a highly respected web developer), the problem of the App Store is not Apple, but the stupid developers who insist in writing native apps when they could just write web apps using good ol&#8217;HTML 5 and CSS.</p><p>I agree that for a small range of applications, this approach would work, going from simple to-do lists, and even some <a
href="http://googlemobile.blogspot.com/2009/07/google-latitude-now-for-iphone.html">social networking applications</a>. I&#8217;ve enumerated the option of web apps in a <a
href="http://akosma.com/2009/10/29/iphone-apps-without-objective-c/">recent article of mine</a> about alternatives to the native SDK.</p><p>But, there&#8217;s always a &#8220;but&#8221;:</p><ul><li>The money is in native iPhone applications. My clients, at least, they want them, they are ready to pay for them, just like they paid for websites back in 1997. And the monetization of iPhone apps is simply brilliant. Submit your app, cross your fingers, charge a few bucks, and you have potentially 50 million clients ready to buy it. Try finding a monetization model for your web app based entirely on the iPhone.</li><li>Games: although I&#8217;m not a game developer (yet) at least for the moment it&#8217;s plain unthinkable to create fun, appealing games using HTML and JavaScript.</li><li>Hardware access: you can access the GPS information, but that&#8217;s more or less everything you can do. Try to access the camera, the local network stack (think Bonjour-based apps), or the microphone, or the speakers, or the iPod music library, or the address book of the user, or the accelerometer, or complex UI animations or transitions, and you&#8217;re toast. The point is, many complex apps are based on those elements. Complex user experiences involve some or all of these elements, not just plain data. I do hope that Apple will allow access to some of these native features in the iPhone soon, particularly the accelerometer and the camera, which would be in my opinion perfect candidates for a JavaScript API.</li></ul><p>There certainly is a business case for web apps, as I explained in <a
href="http://akosma.com/2008/10/31/iphone-conference-2008/">my presentation last year at Geneva&#8217;s iPhone Conference 2008:</a></p><p><img
src="http://akosma.com/wp/wp-content/uploads/2009/11/graph.png" alt="graph.png" border="0" width="450" height="372" /></p><p>In short: yes, web apps are a perfect alternative in some cases; yes, Apple is unpredictable and the App Store must be improved; and finally no, developers aren&#8217;t stupid. There&#8217;s a great deal of personal taste in the choice of a development platform, and in this case, the tradeoff is sometimes worth the pain.</p><p>John Gruber <a
href="http://daringfireball.net/2009/11/iphone_web_apps_alternative">says it even better than me</a>:</p><blockquote>But the best proof is what I pointed out above: Apple itself created almost no iPhone web apps. Successful iPhone developers don’t just want to write software that works on the iPhone. They want to write software for the iPhone that’s just as good as Apple’s. Today that means using Cocoa Touch and the native SDK.
When you write a Cocoa Touch app for the iPhone, you’re not starting from scratch. You’re starting with the Cocoa Touch framework. As Faruk Ateş astutely points out in his response to Koch, to discount the framework is to discount everything that sets the iPhone apart as a development platform. Not only are native iPhone apps faster and more capable than their web-app equivalents, but they’re easier to write.</blockquote><p>Anyway.</p><h2>3) Android</h2><p>I think, without any doubt, that Android is one of the most important platforms of the past few years (<a
href="http://www.tbray.org/ongoing/When/200x/2009/11/20/Android-Splintering">I agree with Tim Bray</a> in this point). Android has many characteristics that are, at first sight, extremely appealing:</p><ul><li>It&#8217;s open source, based on open standards and proven technologies;</li><li>It&#8217;s backed by a company known by its technical expertise and innovation;</li><li>It&#8217;s growing faster and faster every day;</li><li>It is proving popular among users, too &#8211; and this is not a minor element!</li></ul><p>But, of course, not everything is green: Android basically trades off a shitty review process with a shitty programming environment (at least until <a
href="http://www.jetbrains.com/idea/nextversion/#Android_Development">IntelliJ IDEA 9</a> ships*). Not only that: the whole platform is threatened by <a
href="http://www.techcrunch.com/2009/11/17/thegoogle-phone/">Google releasing its own device</a>, or by the <a
href="http://www.theiphoneblog.com/2009/11/17/fake-steve-android-fragmentation-harder-develop-iphone/">fragmentation of the platform</a> by the device vendors, or by the <a
href="http://us.mobile.reuters.com/m/FullArticle/p.rdt/CTECH/ntechnologyNews_uUSTRE5AJ1EU20091120">low numbers of app sales</a> (which is somewhat surprising, given the apparent <a
href="http://www.pcmag.com/article2/0,2817,2355916,00.asp">strong sales of some devices like the Droid</a>).</p><p>Of all the drawbacks I enumerated above, I want to focus in one aspect: the problem of platform fragmentation is, in my opinion, so big, so important, that <a
href="http://www.russellbeattie.com/blog/android-is-splintering-just-not-how-you-think-it-is">voices are raising to explain</a> that this single factor might blow the whole platform:</p><blockquote>Can you write an .apk application that runs on all devices? Theoretically, yes. But not without testing on an ever-increasing number of gadgets. This is the problem that Symbian and J2ME phones have, and the road that Android is headed down if Google doesn&#8217;t reign in control and quickly. Differing OS versions, different manufacturer and carrier customizations, and various app stores are going to hobble the OS before too long.
All that said, I still believe it&#8217;s got a real future after using it regularly on my Archos, but Google needs to get control quickly. I had originally suggested using the Android logo and trademark (which they may or may not own) as a way of ensuring compatibility, but it seems the logo is creative commons. So maybe they need to come up with an &#8220;Android Approved&#8221; logo or something.</blockquote><p>At least in terms of programmer experience, though, Android still has a long way to go. To begin with, it&#8217;s based in Java; and I will never get tired of <a
href="http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.html">quoting this paragraph from His Highness Steve Jegge</a> (Google employee, by the way):</p><blockquote>I’ll give you the capsule synopsis, the one-sentence summary of the learnings I had from the Bad Thing that happened to me while writing my game in Java: if you begin with the assumption that you need to shrink your code base, you will eventually be forced to conclude that you cannot continue to use Java. Conversely, if you begin with the assumption that you must use Java, then you will eventually be forced to conclude that you will have millions of lines of code.</blockquote><p>You can&#8217;t be more clear. More code leads to higher maintenance costs, higher chances of bugs, and in general, harder-to-maintain code bases. The choice of <a
href="http://twitter.com/stevedekorte/status/5902464622">Java</a> in the long run will hurt Android more than anything else. In a similar way, the current App Store policies are doing a similar harm, which is, as Graham said, to make developers run away from either platform.</p><p>Additionally, I might also point out the fact that currently the only way to write Android apps, is using Java (with a small subset of functionality available through the <a
href="http://developer.android.com/sdk/ndk/1.6_r1/index.html">Android Native Development Toolkit</a>); compare this with <a
href="http://akosma.com/2009/10/29/iphone-apps-without-objective-c/">the amount of alternative frameworks for the iPhone</a>, and the discussion of the &#8220;openness&#8221; of the Android platform takes a different spin.</p><p>Finally, there&#8217;s <a
href="http://daringfireball.net/linked/2009/11/22/bray-android">this factor Gruber discusses</a>, this syndrom called the &#8220;year of Android&#8221;, similar to the &#8220;year of Linux&#8221; promised since the early years of this decade&#8230; and which every year turns out, inexorably, in favor of other platforms.</p><blockquote>I’ll just say that if the consensus winds up that the Droid isn’t a great Android phone, this is the sort of attitude that’ll sink Android. It’s the same attitude desktop Linux has always had, that the future is going to be great, so don’t worry about the present.
Like a sports team that’s always saying &#8220;Wait until next year&#8221;, meanwhile, Apple has won another championship this year.</blockquote><h2>4) The Others</h2><p>Just to name them, a bit further away in the finish line, we have a <a
href="http://reddevnews.com/blogs/desmond-file/2009/01/microsofts-mobile-mess.aspx">Windows Mobile</a> base of millions of devices without any serious roadmap, and which looks more like a neglected child than anything else. Or the Palm Pre which is, hum, nonexistent (at least in this side of the world). Or BlackBerry, which is, hum, off the radar (but which I think is the real third alternative to the iPhone and Android). Or Symbian and J2ME, which are, well, Symbian and J2ME.</p><p>So, in short, this means that programming for mobile platforms is both shitty and complex, no matter how you look at it.</p><p>Great.</p><h2>Meanwhile, in a small town in Switzerland&#8230;</h2><p>akosma software does and will concentrate mobile development efforts on the iPhone and Android platforms. We think, given all the facts we could chew so far, that these two are more likely to dominate the mobile software development business in the years to come than all the others combined.</p><p>Nevertheless, in terms of absolute and relative numbers, current projects and cash at stake, iPhone is the clear winner at the time of this writing (something said a couple of months ago in <a
href="http://akosma.com/2009/07/14/interview-sur-le-temps/">an interview on the Swiss newspaper Le Temps</a>).</p><p>In terms of potential for growth, we cannot and we do not underestimate Android (hence our interest). Particularly, there are some factors that could boost Android&#8217;s appeal, which are huge opportunities for growth, somewhat neglected so far:</p><ul><li>Google should promote the platform more, including ads on TV, and also allowing paid apps in more countries;</li><li>Developers should be capable of creating Android apps in as many languages as possible. Compiled or not, scripting or not, object-oriented or not, it doesn&#8217;t matter &#8211; I vote for C++ and Ruby;</li><li>We need a better IDE, now (and a faster emulator, too. The current one sucks).</li></ul><p>Above all, there&#8217;s one important fact: programming is still fun, creative and interesting. And we&#8217;ll keep on creating new stuff (and ranting about it), no matter what platform we choose.</p><p>(*) I have tried the current beta, and <a
href="http://twitter.com/akosma/status/5949948423">I don&#8217;t think</a> it will change the game that much. No visual GUI editor (something that even Eclipse has, albeit in a primitive way), and the configuration of a single project, well, <a
href="http://kosmaczewski.net/2007/05/02/not-exactly-what-i-meant/">it&#8217;s IntelliJ IDEA</a>. I couldn&#8217;t even run a simple project with it. Let&#8217;s see when the final release ships.</p><p><strong>Update, 2009-11-26:</strong> <a
href="http://edition.cnn.com/2009/TECH/11/17/android.wired/index.html">This article in CNN</a> <a
href="http://www.pcinpact.com/actu/news/54322-android-croissance-inquietudes-developpeurs-smartphones.htm">(French version)</a> talks about the problem platform fragmentation represents for small shops. It brings a strange feeling: the &#8220;open&#8221; Android platform might be only open to those with enough means to have a whole testing framework with the most popular devices, leaving out small shops who wouldn&#8217;t be able to support their applications in all devices, given the famous fragmentation. <strong>Similar Posts:</strong></p><ul
class="similar-posts"><li><a
href="http://akosma.com/2011/03/31/talking-at-the-scandinavian-developer-conference-2011/" rel="bookmark" title="March 31, 2011">Talking at the Scandinavian Developer Conference 2011</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/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/2011/10/03/mobile-development-with-jquery-sencha-and-phonegap-15-17-november-2011/" rel="bookmark" title="October 3, 2011">Mobile Development with jQuery, Sencha and PhoneGap, 15 &#8211; 17 November 2011</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/2009/11/25/that-mobile-programming-mess/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
