Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc

Minority blog

blog mainly about not well known things
Jak se daří úspěšným na App Store - závěr
Dneska mini-seriál na téma jak se daří úspěšným aplikacím zakončím, jednak z důvodu, že je to přeci jen server pro vývojáře, ale také proto, že tyto informace jsou čím dál snadněji dostupné na Internetu.

Zmínil jsem se zde o "prdící" aplikaci iFart, dále pak malé utilitce Convert a dneska vytáhnu aplikaci z více serióznější skupiny.

Společnost Omni Group, která je producentem řady kvalitních aplikací pro platformu Apple vydala iPhone aplikaci Omni Focus. Jedná se jednoduše řečeno o velmi propracovaný úkolovník, jenž se dá např. relativně dobře použít i na metodu GTD, která je v poslední době dost populární.

Aplikace OmniFocus, jak zní její název, se prodává v App Store za 19.99 USD což je na tamní poměry už docela vysoká cena. Samozřejmě s příchodem např. GPS navigací se cenová hladina zvedá, ale i tak je cena OmniFocusu na poměry docela vysoká.

Jedná se o informaci z února tohoto roku, takže k dnešnímu dni už budou čísla zase někde jinde. Každopádně Omni Group k únoru 2009 prodal 50tis. kopií své aplikace.

Takže jednoduchá matematika: 50000 * 19.99 USD je 997 500 USD. Pro jejich příjem je nutné odečíst 30% provizi, kterou si bere Apple. Dneska už asi ten milión dolarů vydělali.

Takže jak je vidět, i serióznějším aplikacím se na App Store daří.


Předchozí články:

Posted: 15. září 2009 7:56 by minority | 0 Comments
Vedeno pod:
Jak se daří úspěšným na App Store II.
Jen v krátkosti. Nestává se každý den, aby úspěšný producent na App Store zveřejnil informace o svém prodeji. Nedávno tak udělal dlouholetý vývojář na platformě Macintosh a zakladatel populárního serveru MacHeist, který produkuje v App Store pod značkou TapTapTap druhou nejprodávanější aplikaci v americkém App Store - Convert.

Takže v krátkosti pár faktů:

1. Aplikace se prodává za 0.99 USD
2. Je v kategorii TOP 25 na 2. místě v placených aplikacích v US App Store.
3. Během 2 týdnů se prodalo přes 50tis. kopií.

Shrnuto podtrženo, během 2 týdnů TapTapTap vydělali cca. 35 000 dolarů (částka je po odečtení provize, kterou si bere Apple).
Po půl roce v App Store
Nedávno Apple prezentoval pár čísel ohledně App Store. Pokud se člověk podívá na stáří platformy a zveřejněná čísla, musí uznat, že se jedná o celkem impozantní úspěch. Však posuďte sami. 1,5 miliardy stažených aplikací rok po spuštění App Store, obsahuje více jak 65 tis. aplikací, ve vývojářském programu je registrováno více jak 100 tis. vývojářů a bylo prodáno přes 40 miliónů zařízení podporujících aplikace z App Store (iPhone, iPod Touch). Která platforma se může pochlubit tak razantním nástupem. Však Apple také v poslední době vykazuje enormní zisky převážně díky iPhone a věcí kolem něho.

Při té příležitosti jsem se rozhodl sepsat pár poznámek o svém, už takřka, půl ročním působení v App Store. Jelikož tam v současné době mám jen free aplikace, nebudu se na to dívat z hlediska finančního, ale převážně z toho vývojářského.

O komplikovaném a především zdlouhavém schvalovacím procesu při uvedení aplikace do App Store jsem se již zmiňoval v předešlých článcích. Bohužel tento schvalovací proces vás provází i při dalším pobytu v App Store. Každá opravná verze musí opět tímto procesem projít a se zvyšujícím se počtem aplikací v App Store roste i doba schvalování. Pokud se vám například podaří vypustit verzi s kritickou chybou, tak se můžete spolehnout na to, že vás vaši uživatelé budou proklínat mnohem více než na jiných platformách. Ono být tři týdny s nefunkční aplikací není zrovna žádný med. A vy jako vývojář s tím už pak mnoho neuděláte. Můžete se modlit, aby vám těch uživatelů mnoho neuteklo. Rychlost schvalování totiž nemáte prakticky možnost ovlivnit. Nepomůže mailování, nepomůže telefonování.

K tomu všemu pak zjistíte, že jsou aplikace, které Apple ve schvalovacím procesu upřednostňuje. Na jedné straně jsou to prominentní aplikace jako např. Facebook, na straně druhé jeho vlastní, což je samozřejmě pochopitelné :-) Takže zatímco vaše verze už tři týdny čeká na schválení aktualizace, během té doby se vám 3x z aktualizuje Facebook a to už opravdu naštve.

Pokud vaše aplikace čeká tři týdny ve schvalovacím procesu, logicky za tu dobu zestárne. Během té doby doděláte třeba další funkcionalitu, opravíte chyby a tak se nabízí možnost jí ještě ve schvalovacím procesu aktualizovat. Tento krok však sebou nese tu nepříjemnost, že s novou verzí se opět posunujete na konec čekací fronty. Je tak nutné s tímto kalkulovat při vydávání nových verzí.

Zmínil jsem se zde o tom, že publikování nových verzí klade velký důraz na testování. Již v minulých článcích jsem psal o tom, že jako vývojář máte možnost mít 100 testovacích zařízení. Můžeme se bavit o tom jestli je to málo nebo hodně, ale mnohem zásadnější je to, že tyto zařízení nelze v průběhu času měnit. Pokud si zaregistrujete 100 zařízení svým unikátním kódem a posléze jich pár smažete, jejich místo už je obsazené a nepřidáte tam nové. Tohle může být obzvlášť nepříjemné, pokud využíváte např. služeb serveru iBetaTest.com, kde velice snadno nasbíráte velké množství lidí ochotných testovat. Ovšem nakonec zjistíte, že jich je jen 10 aktivních a ostatní nepotřebujete. Smůla.

Další zajímavostí jsou samotní uživatelé, respektive stahovatelnost aplikace. Při nástupu do App Store vás zřejmě potěší velké množství lidí, kteří si vaší aplikaci stáhnou. Je to dané jednak tím, že se třeba ocitne v části novinek kam chodí drtivá většina lidí. Dalším zdrojem uživatelů jsou různé servery, které monitorují nové aplikace v App Store. Pokud se vám navíc podaří, že vás některý z nich zrecenzuje, máte o krásná čísla postaráno. Bohužel postupem času zájem o vaší aplikaci upadá. Pokud se dlouhodobě nedržíte v nějakých TOP 10 dané kategorie tak je propad celkem výrazný. Ovšem opravdu reálná čísla získáte až při první aktualizaci. Protože teprve pak vidíte, kolik lidí vaší aplikaci opravdu používá, kteří jí hned po odzkoušení neodinstalovali. Našel jsem, že průměrně je to kolem 30-40% procent stažení. Osobně to mohu z vlastní zkušenosti potvrdit.

Přes to všechno je pořád množství uživatelů více než zajímavé a troufám si říct, že v současné době je App Store jeden z nejsnadnějších způsobů jak dostal aplikaci mezi lidi. Ovšem postupem času, jak se vývojáři zlepšují, zlepšuje se i kvalita dostupných aplikací. Už dávno neplatí, že můžete uspět s aplikací nevalné kvality jako to bylo za dob, kdy byl App Store plný hladových uživatelů. Je také krásně vidět propastný rozdíl mezi úspěšnou aplikací a balastem, mezi kvalitním tvůrcem a tím co nemá prostředky ať už finanční či znalostní pro to udělat kvalitní aplikaci. Tento trend bude asi čím dál výraznější s tím jak bude růst popularita App Store a bude se do něho hrnout více ziskuchtivých vývojářů. Je to ostatně stejné jako na jakékoli jiné platformě.
Jak se daří úspěšným na App Store
Dneska jsem se snažil zjistit jak si vlastně stojíme v App Store ve srovnání s konkurencí. Takže jsem začal googlit a narazil jsem na docela zajímavé informace.

Je jasné, že už dávno neplatí, že každá aplikace publikovaná na App Store je vstupenka do zlatých časů pro svého vývojáře. Tohle možná v určité míře platilo na začátku, ale ne teď kdy App Store okupuje kolem 20tis. aplikací. Přesto se zdá, že při dobrém nápadu, nebo možná originálním je to správné slovo, se dá celkem úspěšně zazářit a vydělat si třeba na ten domek za Prahou, který tak někteří nemají rádi :-)

V poslední době hodně zazářila aplikace iFart Mobile. Hodně se o ní psalo i u nás, což jen podpořilo její prodeje. Aplikace za 99 centů vydělala svému autorovi opravdový balík na to jak moc mu dala práce. Pro ty, kteří neví oč se jedná tak jde o aplikaci, která v přívětivém kabátku nedělá nic jiného než přehrává mp3 soubory se zvuky prdění. Má jich pár na výběr a jako vtip to nemusí být špatné. Hold větry pochopí každý :-)

Autor zveřejnil pár denních čísel ze statistik App Store, na kterých je vidět jaké možnosti se tu vlastně nabízejí.

12/14 - 841 stažení
12/15 - 1510 stažení
12/16 - 1797 stažení
12/17 - 2836 stažení
12/18 - 3086 stažení
12/19 - 3117 stažení
12/20 - 5497 stažení
12/21 - 9760 stažení
12/22 - 13274 stažení

Na druhou stranu tohle ledacos vypovídá o majitelích iPhone když mezi TOP aplikacemi je něco takového. Minimálně to, že jim nedělá problém za takové věci platit :-). Pokud si jen těchto pár dní vynásobíme 99 centy, odečteme 30% provizi Apple, tak to rozhodně není špatné.
iPhone - aplikace dokončena a zveřejněna
V nedávné době se mi konečně podařilo úspěšně dokončit celé kolečko. Jinak řečeno aplikace, na které jsem pracoval je dostupná ke stažení na App Store. Mám tak za sebou kompletní vývojový cyklus aplikace pro Apple iPhone a vím co všechno to obnáší. Není to ideální, ale není to ani tak strašné jak by se třeba i na základě mých minulých příspěvků mohlo zdát.

Od App Store jsme si na projektu hodně slibovali především ve výrazném nárůstu návštěvnosti. To se na jedné straně opravdu povedlo a iPhone má výrazný podíl na počtu nových registracích, ale ten pověstný App Store effect jsme naší vinou zcela propásli. Díky nepochopení registrace aplikace v App Store (na vině je nedostatečná dokumentace a moje neznalost) se aplikace vůbec neobjevila v seznamu nových aplikací, což je místo které navštěvuje drtivá většina uživatelů používajících App Store. Namísto toho jsme zapadli někde v sekci Travel a aplikaci tak nachází jen lidé, kteří vědí co zhruba by chtěli. Ač takových není v celkovém součtu mnoho, zvlášť když je App Store plný balastu, přesto je vidět ta obrovská síla centralizovaného přístupu k aplikacím pro iPhone.

App Store nabízí jednoduché rozhraní pro přístup ke statistikám. Tady bych řekl, že to pánové z Cupertina docela odflákli. Naštěstí zde existuje možnost stáhnout si statistická data a v kombinaci s aplikací AppViz už je sledování statistik o něco zábavnější a hlavně přehlednější.

Při každodenním pohledu na statistiky musím jednoznačně říct, že to za to stálo. I při našem nepovedeném startu v App Store se efekt dostavil a jednoznačně nám to ukázalo, že musíme iPhone věnovat více a více času, protože tvoří významnou část našich uživatelů.
iPhone app – adhoc distribuce

Když jsem minule psal článek o možnostech testování iPhone aplikací záměrně jsem se nezmínil o asi nejdůležitějším způsobu distribuce pro testovací účely. Měl jsem k tomu dva důvody:

  1. Napsal jsem aplikaci, které tenhle způsob výrazně zjednodušuje a chtěl jsem jí  zde zmínit. Bohužel jsem se zatím nedostal k jejímu finálnímu doladění, takže odkaz prozatím neuvedu.
  2. Chtěl jsem nenápadně zjistit kolik vývojářů pracujících na iPhone tenhle blog čte, poněvadž ty by se určitě v komentářích ozvali.

Aplikaci do “neupraveného” (bez jailbreak) iPhone, jak jsem již minule psal, lze dostat pouze přes vývojové prostředí XCode nebo App Store. Obě tyto metody vyžadují podepsanou aplikaci vaším certifikátem a speciální instalační profil, který se v obou případech liší. Jeden je určen pro vývoj a druhý speciálně pro App Store.

Třetí možností je tzv. ad-hoc instalace. Zde opět figuruje instalační profil, který umožní instalaci aplikace do telefonu tak, že si uživatel přetáhne aplikaci do okna iTunes a po synchronizaci s telefonem se mu aplikace nainstaluje. Aplikaci tak lze distribuovat např. emailem společně s instalačním profilem testerům.

Instalační profil je soubor, který obsahuje identifikační číslo telefonu, který může aplikaci nainstalovat a spustit. Může obsahovat až 100 identifikačních čísel. Proti instalačnímu profilu se aplikace kompiluje. Tím se docílí toho, že umí běžet jen na těch zařízeních, které obsahují tento instalační profil a ten zase obsahuje ID telefonu v kterém se může použít.

Počet identifikačních čísel v jednom instalačním profilu je sice omezen na “pouhých” 100, ale ty lze kdykoli odebrat a přidat nová. Aplikace se zkompiluje proti novému a může se vesele pokračovat.

Návod na kompletní instalační postup z hlediska testera si můžete prohlédnout na příkladu serveru OnTheRoad.to a jeho testovacím programu pro OnTheRoad for iPhone.

Posted: 28. ledna 2009 15:35 by minority | 6 Comments
Vedeno pod:
Dá se na iPhone vydělat?

Musím tak reagovat na jeden z komentářů pod mým prvním článkem o vývoji na iPhone, který psal o tom, že na iPhone aplikacích se nedá vydělat a zaměřte se na Android apod. Dlouho mě leželo v hlavně proč to vlastně pisatel psal až jsem se rozhodl na to reagovat samostatným článkem.

Myslím si, že v tomhle se platforma iPhone neliší od ostatních. Pokud vytvoříte špatnou aplikaci, tak se neprosadí na žádné platformě o nic lépe než na té od Apple. Naopak pokud se vám podaří svou aplikací oslovit uživatelé, můžete z toho těžit na iPhone stejně tak jako jinde. Možná o to více, že zde platí restrikce, které Apple zavedl.

Díky politice Apple mohou uživatelé používat jako jediný zdroj aplikací pro svůj telefon App Store. Právě proto mají teoreticky přístup i k špatné aplikaci, která by se normálně bez většího zájmu povalovala na nějakém download serveru. App Store v dnešní záplavě aplikací nenabízí příliš možností jak se v nich orientovat a tak není moc možností jak být vidět. Prakticky nejlepší je být v Top 25 a tam se nejjednodušeji dostanete během pár dní po uvedení aplikace na App Store, kdy je v seznamu nových aplikací. Poté už zapadne kamsi do pozadí a pokud během těch pár dnů nevzbudíte dostatek zájmu, už vám App Store v propagaci příliš nepomůže.

App Store se v tomto směru samozřejmě vylepšuje, kdy Apple avizoval změny v novém firmware například v podobě odkazu "informuj přátelé" u každé aplikace. Těch změn podle mě bude čím dál více, čím více tam bude aplikací. Je totiž i v zájmu Apple aby se aplikace prodávaly, protože si z nich bere svůj podíl. Ostatně se můžete podívat na prodejní úspěchy iTunes. Tak proč by to samé nemohl docílit s aplikacema pro telefon.

iPhone je relativně nová platforma a proto nabídka aplikací ještě za moc nestojí. Suveréně tak dominují hry, kdy se nejúspěšnější producenti pohybují ve stovkách tisích dolarů. Svědčí to mimojiné i o faktu, že lidem nevadí kupovat si aplikace. Je to do jisté míry způsobené i hladem po nových aplikacích, který postupně bude opadávat. Na druhé straně popularita iPhone má stále velmi vzrůstající tendenci a s pronikáním na nové zahraniční trhy se dá očekávat, že podíl iPhone se bude i nadále zvětšovat a tím i počet možných zákazníků. K tomu si přičtěte populární iPod Touch a trh je to opravdu velmi zajímavý.

Takže odpověď na otázku v nadpisu článku je určitě ano. Je to prostě stejné jako jinde. Úspěšní vydělávají a neúspěšní nadávají. Pokud si uvědomíme specifika této platformy a ještě pořád minimum zajímavých aplikací, určitě je to zajímavý trh pro spoustu aplikací.

Beta testování iPhone aplikací

Po minulém článku, ve kterém jsem se snažil velice obecně ukázat, že vývoj na platformě iPhone není úplně bez problémů, bych se dnes rád podíval na jeden z problémů trochu podrobnějším pohledem. Tímto problémem, na který časem narazí každý, kdo se chce věnovat serióznímu vývoji na této platformě, je tzv. fáze beta testování. Jedná se o etapu v rámci vývoje, kdy chcete svou aplikaci distribuovat mezi uzavřenou skupinu lidí, kteří vám dají zpětnou vazbu na vaší aplikaci.

Připoměň me si, že existují dvě možnosti jak dostat oficiální cestou aplikaci na telefon. První možností je přes App Store. Vzhledem k tomu, že Apple nenabízí žádné možnosti omezení přístupu k aplikacím v rámci této služby, může si jí po zveřejnění stáhnout každý kdo má zájem. Díky této charakteristice je tento způsob naprosto nevhodný pro něco jako je testovací režim. Jde totiž o to, že na App Store je čím dál více aplikací a tak už není moc v lidských silách si je všechny proházet. Proto nejúspěšnější z hlediska distribuce a propagace aplikace v App Store je první pár dnů po zveřejnění. To aplikace figuruje v seznamech nových aplikací kam lidé chodí nejčastěji. Jakmile vypadne z těchto seznamů už většinou o ní takový zájem není. Proto kdyby jste chtěli použít App Store pro veřejné testování a vaše aplikace nebyla přiliš stabilní, promarnili by jste si to nejlepší období.

Druhou oficiální možností je nahrát aplikaci přímo z vývojářského počítače (ten co obsahuje certifikát) na telefon. Tahle možnost je dobrá v rámci použití pro beta testování zrhuba k tomu, že si otevřete stánek v centru Prahy a budete jednotlivě lidem nahrávat svou aplikaci. Též to nezní moc použitelně.

Třetí možnost už v podstatě není, takže jsme vyčerpali všechny oficiální možnosti jak naší aplikaci pořádně otestovat.

Závěr z toho je tedy takový, že se opět ač nechceme, musíme vydat cestou neoficiální, kterou jsou tzv. jailbreaknuté telefony. Tady už jsou možnosti o poznání optimističtější. Nabízejí se nám hned dva způsoby distribuce, kterými jsou Installer a Cydia.

Oba programy fungují na podobném principu. Vytvoříte si instalační balíček a mezi uživatele distribuujete URL. Oba programy v přehledném UI nabídnou stažení vašeho programu, instalaci, aktualizaci a odstranění. Zatímco Installer je založen na vlastní metodě instalačních balíčku, Cydia využívá časem ověřený APT, neboli metoda použitá v linuxové distribuci Debian. Má to své výhody nejen v dostupnosti dokumentace, různých nástrojů, ale z vlastní zkušenosti mohu potvrdit, že je lepší i z hlediska bezpečnosti. Když uděláte chybu v Installer balíčků, může Vám to zrušit celý telefon.

Bohužel nic není dokonalé a i tato metoda má své nevýhody. Liší se totiž docela zásadně od metody distribuce přes App Store. Např. v případě Cydia je aplikace fyzicky na jiném místě než když jí distribuujete přes App Store. Je tak nutné aplikaci kompilovat již s tímto nastavením, protože vám zcela logicky nefungují funkce pro získání vašeho HOME adresáře aplikace, které Apple oficiálně doporučuje používat. Dalším omezením je např. to, že se neregistruje nastavení aplikace v telefonu, tudíž k němu nelze přistupovat přes aplikaci Settings.

Právě díky frustraci, která pramení z nemožnosti reálného testování aplikace v podmínkách App Store, vznikají skupinky vývojářů, kteří si vzájemně testují své aplikace. Každý má vlastní certifikát a tudíž si může dát aplikace do telefonu tak, jako by mu jí tam dal App Store. Pokud se vytvoří skupinka třeba 10 vývojářů, tak už máte docela pěkný základ k tomu, aby jste si otestovali aplikace v podmínkách App Store. 

Těžký život iPhone vývojáře

Už to bude pár týdnů co jsem přesedlal z vývoje v Microsoft .NET frameworku na platformu Apple. Občas jsem slyšel o někom kdo zná člověka, který viděl někoho používat Apple Mac OS X. A najednou jsem se stal jedním z těch, kteří tento systém používají. Vedla mě k tomu skutečnost, že jsme se na projektu, který připravujem rozhodli pro vývoj aplikace na "hype" dnešní doby telefon iPhone.

Oprášil jsem své znalosti z "dětství" kdy jsem si hrál s jazykem Objective-C, zakoupili jsme Apple iMac a krasojízda mohla začít. Kromě hardware od Apple a SDK, které je zdarma ke stažení vlastně nepotřebujete nic jiného a můžete vesele začít.

Po bezplatném vytvoření účtu na developer.apple.com si stáhnete SDK, které vám rozšíří možnosti standardně dodávaného vývojového prostředí XCode pro vývoj iPhone aplikací. Součástí SDK je i simulátor, který pro 99% činností plně nahradí samotné zařízení. Co neumí je např. ovládání více prsty, accelerometer (to je ta věc, která umožní reagovat na pohyb) a možná ještě pár maličkostí. Také je tu jedna záludnost v tom, že přeci jen simulátor běží např. na 2GHz stroji s 3GB RAM což absolutně neodpovídá reálným možnostem iPhone. Lze si tak jednoduše připravit horké chvilky až jednou nasadíte svou aplikace na iPhone a zjistíte, že jste naprogramovali pěkného šneka.

Naštěstí pro tyto případy je zde možnost deploy aplikace přímo na iPhone a v podstatě jí debugovat, tracovat přímo na telefonu. Každopádně aby jste tuhle možnost mohli využít, musíte si koupit členství v iPhone Developer Program za "symbolickou" částku 99 USD. Tím získáte možnost vytvořit si certifikát, který vám Apple podepíše a díky němu pak nainstalovat aplikaci přímo do telefonu. Zde narazíte na první a dost zásadní problém. Reakční doba Applu na vaše zaplacení poplatku je totiž dlouhá a nikde nestanovana. Já například už čekám 3 týdny a pořád nic. Onen certifikát vám totiž v pozdějším stádiu umožní publikovat aplikaci na App Store, což je jakési centrální úložiště programů pro iPhone, z kterého si uživatelé mohou buď z iTunes nebo přímo z telefonu stahovat/zakoupit váš program.

Jelikož jsem nechtěl být odkázán při vývoji pouze na simulátor, tak mě má touha vyzkoušet si svou aplikaci reálně na telefonu dohnala k tomu, abych obešel pravidla Apple. Prvním krokem byl jailbreak iPhone, díky kterému jsem zrušil ochranu, která bránila instalovat do přístroje aplikace, které nejsou podepsané certifikátem Apple. Dalším krokem bylo zprovoznění deploymentu aplikace přímo z XCode což obnášelo přes SSH vyměnit jeden interní skript v telefonu, pozměnit konfiguraci XCode, vytvořit certifikát na podpis kódu a pak už jen Build and Run z XCode. Po pár hodinách se to povedlo a nyní už mohu svou aplikaci testovat přímo na telefonu. Do doby než vznikne potřeba publikovat aplikaci na App Store se snad Apple ozve.

Samotný vývoj aplikace už nepřináší taková úskalí jaká jsem teď popisoval. Naopak, je to opravdu zábava a pokud se překonají počáteční bolesti, je to opravdu příjemná změna. Jazykem pro vývoj je Objective-C. Jedná se o klasické Céčko s objektovou nadstavbou z jazyka Smalltalk. Tak jako mě nikdy C++ k srdci nepřirostlo (asi na něho nejsem dostatečně dobrý), tak Objective-C prostě miluji. Na iPhone narozdíl od posledních verzí Mac OS X nelze používat garbage collector, takže si musíte hlídat pamět sami. Je to od Apple rozumné, protože díky tomu je zde kladen důraz na výkon a proto aplikace na iPhone jsou takové formule 1 oproti konkurenci např. Symbian a Java.

Frameworkem je Cocoa Touch. Jedná se o odlehčenou verzi frameworku Cocoa, na kterém stojí dnes už z docela velké části samotný Mac OS X. Nevím jestli slovo odlehčený je tady na místě. Spoustu věci oproti velké Cocoa chybí, má to vlastní sadu grafických prvků ale je zde velká podobnost se samotnou Cocoa. Takže člověk znalý vývoje Mac OS X nebude mít až takový problém si tento framework osahat.

Objective-C a Cocoa je velice vyspělá platforma, která má řadu věcí, které se např. až teď dostávají do posledních verzí C# (např. Extensions) a .NET. Integrace s operačním systémem je velice dobrá, takže snadno můžete používat GPS, kalendář, foťák apod. Naopak tam jsou docela zajímavé kiksy jako je neexistence clipboardu, tab indexu na prvcích apod.

Bohužel přes všechna pozitiva vám na každém kroku Apple hází klacky pod nohy. Počínaje vystavením certifikátu pro podpis aplikací až po různé restrikce, které pro vývoj stanovil. Zákaz fungovaní aplikace na pozadí, omezené využití GPS apod. Nikdo vám samozřejmě nemůže bránit v aplikaci využívat vše co systém nabízí, ale pokud se nebudete řídit nařízením Apple, tak vám neumožní publikovat aplikaci na App Store a tím vás v podstatě odřízně od miliónů uživatelů. Jiný oficiální distribuční kanál totiž neexistuje. Samozřejmě tu je možnost distribuce aplikace pro jailbreaknuté telefony, ale to už jaksi není ono.

Na cestě do App Store se můžete dále setkat například s tím, že dodáte ikonu v PNG souboru, které Apple neakceptuje, takže vaše žádost o umístění aplikace bude zamítnuta. Nebo vám Apple najde chybu, protože sám provádí určité testování vaší aplikace apod. Průměrná doba mezi odmítnutím a schválením/dalším odmitnutím aplikace do App Store ja cca. přes týden. Klidně se tak může stát, že publikování verze v App Store vám zabere i měsíc, záleží jak moc se vám podaří vyhovět pravidlům. U první verze to asi bude docela náročné na nervy.

No tak to by pro dnešek jako letmé seznámení s vývojem pro iPhone stačilo. Snad to nebylo moc nudné :-)

Správa RSS dotažena do dokonalosti

S příchodem iPhone 3G na český trh se mě otevřel přístup do Apple App Store a díky tomu se mě podařilo dotáhnout správu svých RSS do dokonalosti. Díky řešení firmy NewsGator mám nyní RSS po ruce jako nikdy předtím. Ano, možná to zní jako reklamní fráze vytržená z propagačních materiálu NewsGator, ale nutno uznat že to není daleko od pravdy.

Všechno začalo když jsem po několika dlouhých experimentech přešel před cca. rokem na desktopovou čtečku FeedDemon. Tahle čtečka je jako spousta jiných. Nenabízí žádné převratné možnosti ve srovnání s například Rss Banditem, ale přesto má něco co mě u ní stále drží. Prvním je příjemné UI, které je od všech mnou zkoušených čteček opravdu radost používat. Je to rychlé i při mém už docela morbidním počtu přihlášených zdrojů, netrpí to nedostatky a je to hodně zaměřené na detaily. Možná díky tomu, že za tím stojí autor legendárního HomeSite a TopStyle Nick Bradbury, který jestli něco opravdu má, tak je to cit pro detail.

FeedDemon

Druhou velice důležitou vlastností je synchronizace s online čtečkou NewsGator Online, která nabízí velice komfortní UI, které je co do použitelnosti srovnatelné s Google RSS Reader a pak už je to spíše otázkou vkusu jestli řeknete, že je lepší než ta od Google nebo ne. Mě prostě sedí víc. Možná je to tím, že se drží klasického Outlook stylu zobrazení. NewsGator Online samozřejmě disponuje i speciálním UI pro iPhone, které jsem používal na předchozím modelu iPhone.

NewsGator

A tím se dostávám konečně k závěru mého chvalospěvu. S příchodem iPhone 3G na český trh jsem získal přístup do App Store a mohl si tak stáhnout aplikaci NewsGator NewNewsWire což je nativní iPhone RSS čtečka se synchronizací s NewsGator Online. Co do použitelnosti je mě řádově příjemnější než online rozhraní NewsGator, které jsem používal doposud.

iPhone_nnwMainScreen

Díky neomezenému datovému tarifu už mohu všude beztrestně číst RSSka z mobilu a tím jsem definitivně vyřešil svou dávnou představu o pohodlném přístupu k informacím :-))

Udělejme Davídkovi radost

Sice dotyčného neznám, ale když se to ke mě dostalo upřímně jsem se bavil po celou dobu čtení této naprosto výborné výzvy.

Takže podpořte Davídka na Křišťálovou Lupu 2008, protože tohle je jediná věc, která na celé anketě má smysl. Podpořit Davídka :-))

P.S.: David Grudl se touto výzvou přesně trefil do mého názoru na Křišťálovou Lupu, tak jsem ho prostě musel podpořit.

Rozdíl mezi "" a String.Empty

Rozdíl mezi oběma konstrukcemi je malý, ale přesto tu jistý rozdíl je. Pokud hrajete na maximální efektivitu využití paměti, což už se v dnešní době moc nenosí, tak by jste tento rozdíl mohli ocenit.

Zatímco konstrukce "" vytváří nový objekt a tudíž se alokuje místo v paměti, v případě String.Empty nikoli.

Otázkou zůstává na kolik je ten rozdíl z hlediska paměti zasádní vzhledem k speciálnímu chování kompilátoru vůči stringům, který zajistí, že v paměti je stejný řetězec jenom jednou, ale z čistě subjektivního hlediska to vypadá více profi když použijete String.Empy :-)

Posted: 15. srpna 2008 17:57 by minority | 8 Comments
Vedeno pod:
Zaměstnavatel: Microsoft vs. Google

Narazil jsem na jeden zajímavý článek o zaměstnání v Google a Microsoftu. Dare Obasanjo zde píše ve prospěch svého zaměstnavatele (Microsoft), ale i tak je to zajímavé čtení, díky kterému jsem si uvědomil, že Google je spíše taková vzdálená modla ale při bližším ohledání může být člověk docela zklamaný.

Samotné čtení zde ....

Posted: 7. srpna 2008 9:50 by minority | 1 Comments
Vedeno pod:
Distribuovaná keš - jaká je nabídka pro .NET

Volně naváži na předchozí post o Microsoft Velocity stručným přehledem možných variant pro .NET vývojáře.

V prvé řadě je možné použít již zmíněný Memcached (Win32 port), který nabízí hned několik klientů pro .NET platformu.

Memcached je open source velice vyzrálá a časem ověřená technologie.

Druhou možností je robustní distribuovaná keš ScaleOut. Jedná se o komerční řešení nabízející vývojářskou licenci zdarma. Bohužel se mi nepodařilo najít zajímavé referenční implementace.

Další komerční variantou je Alachisoft NCache. Má velice kvalitní podporu pro ASP.NET (např. ve formě HttpModule, Session State Provider, možná integrace Caching Block z Enterprise Library, apod.). Kdyspozici je bezplatná varianta NCache Free. Narozdíl od ScaleOut nemají bezplatnou vývojářskou verzi.

NCache Free je oproti ostatním variantám dost limitovaná např. velikostí keše na 500MB, pouze 2 servery, omezená podpora pro ASP.NET apod.

Poslední co se mi podařilo najít je open source projekt SharedCache.

Aktualizováno: Managed Extensibility Framework
public class HelloWorld {
[Import] // import declares what a component needs
public OutputDevice Output;

public void SayIt() {
Output.WriteLine("Hello World");
}
}

// Extension Contract
public abstract class OutputDevice {
void WriteLine(string output);
}

Rozšíření:

[Export(typeof(OutputDevice))] // export declared what a component gives
public class CustomOutput : OutputDevice {

public void WriteLine(string output) {
Console.WriteLine(output);
}
}

Použití:

var domain = new ComponentDomain();
var hello = new HelloWorld();

// of course this can be implicit
domain.AddComponent(hello);
domain.AddComponent(new CustomOutput());

domain.Bind(); // bind matches the needs to gives
hello.SayIt();

Pěkné, že?

Aktualizace: Původně jsem chtěl na tento post navázat dalším s vysvětlením oč se jedná. Avšak díky prudce vnímavému a sdílenému čtenáři pazu, zde raději uvedu, že se jedná o ukázku z nového frameworku z dílny Microsoftu, který byl před pár dny uvolněn v první CTP verzi.

Více informací:

Posted: 11. června 2008 13:00 by minority | 3 Comments
Vedeno pod:
Více článků Další stránka »
Vyvojar.cz na prodej!