ã¢ããªã«ã€ããŠ
ãã®ç¹å®ã®ã²ãŒã ãAndroidåãã«äœæãããšããã¢ã€ãã¢ã¯ãAndroid SDKã®ç¥èãšéçºã®éå§ãã2幎ã»ã©åã«æãã€ããŸããã ç§ã¯ãã®åèªã²ãŒã ã奜ãã§ããããæ¢åã®å®è£ -ãããã
æ ããã®ä»ã®äžå¯æåã®ãããç§ã¯ä»å¹Žã®ç§ãŸã§ãã®ããžãã¹ã延æããŸããã ã²ãŒã ã®æåã®ããŒãžã§ã³ã¯10æäžæ¬ã«ãªãªãŒã¹ãããŸããããå¥åŠãªããšã«ãå°æ°ã®ãŠãŒã¶ãŒããéåžžã«æž©ããè¿ããããŸããã 3ãæåŸããã®ãããžã§ã¯ãã¯çŸåšã皌åäžã§ããçŸåšããã·ã¢åžå Žã®ã«ããŽãªã®ããã31ã§ããã1äžãè¶ ããã¢ã¯ãã£ããªã€ã³ã¹ããŒã«ããããŸãã
ã¢ããªã±ãŒã·ã§ã³äœæ
åæ
ãã¡ãããAndroidåãã®ãã®ãããªã²ãŒã ã¯ãã§ã«åžå Žã«åºåã£ãŠããã®ã§ã競åããã¢ããªã±ãŒã·ã§ã³ã®åæããå§ããŸããã
åœæãåžå Žã«ã¯ãã§ã«3人ãããŸããã
- Dmitry Chistyakovã® "Balda"-ããããåœæã®æé«ã®ãã®ã
- Wind Appsã®ãBaldaãã
- ãã¹ã¡ã·ã£ãªãã ãã«ããããŒããŒãã¡ãã£ã¢ã
æåã¯ã€ã³ã¹ããŒã«ã®æ°ããå€æããŠæã人æ°ããããŸããããæŸæ£ãããããã§ã-æåŸã®æŽæ°ã¯2010幎7æã§ããã
LG Gameã¹ããŒããã©ã³å°çšã«é åžãããŠãããã1ã€ã®ããŒãžã§ã³ãWord Game BaldaããããçŸåšãååšããŠãããããåžå Žã§ã®ç«¶äºãè¡šããŠããŸããã
ãã§ã«ãã®ãããªã²ãŒã ãããã1ã€ã§ã¯ãªãã®ã§ã決å®ã¯æçœã§ãã-ããªãã¯ä»ã®ãã®ãããããŸãããå¿ èŠããããŸãã
éçº
è³
åèªæ€çŽ¢ã¢ã«ãŽãªãºã ã§ãããé è³ãã®å®è£ ã«ãããã²ãŒã ã®éçºãéå§ããŸããã åèªãæ€çŽ¢ããããã«ãåæéå®æ³ã䜿çšãããŸãã-æåããšã«è¿œå ããããšã«ãããã¢ã«ãŽãªãºã ã¯ãã®ãããªéšåæååã§å§ãŸãåèªãèŸæžã«ãããã©ããããã§ãã¯ããŸããã
å®å šãªæ€çŽ¢ãèšè¿°ããŠãã¹ã¯ããããã·ã³ã§ãã¹ãããåŸããã®ã³ãŒããAndroidã¢ããªã±ãŒã·ã§ã³ã«è»¢éããŸããã ãããŠã2.3 GHzã®åšæ³¢æ°ã®Core 2 Duoã§100ããªç§ããã£ãåèªæ€çŽ¢ãã600 MHzã®åšæ³¢æ°ã®ARM5ïŒãã¹ãHTC Wildfireã§ïŒã§æ°åç§ãããããã«ãªã£ãããšãããã«é©ããŸããã
æããã«ãããã«ããã¯ã¯ããããã¡ã€ã©ãŒã«ãã£ãŠç¢ºèªãããç¹å®ã®éšåæååã§å§ãŸãèŸæžå ã®åèªã®ååšã確èªããããšã§ããã
ãã®ãããªåºçŸãæ¢ããªãããã«ãç§ã¯åèªãunningãªãããã®åœ¢ã§ä¿åãå§ããŸãããããã§ãããŒã¯åèªã®å§ãŸãã§ãæå³ã¯ãã¹ãŠã®å¯èœãªçµããã®ãªã¹ãã§ãã æ€çŽ¢ã¯ãã£ãšéãåäœãå§ããŸãããããã®ãããªæ§é ã®åæåã«ã¯ããªãã®æéããããå§ããŸãã-ã¢ããªã±ãŒã·ã§ã³ã®èªã¿èŸŒã¿ã«ã¯çŽ40ç§ããããŸããã ãã®ãããNDKã䜿çšããŠå šäœãæžãçŽãããšã«ããŸããã æ®å¿µãªãããæ£ç¢ºãªæ°åãäžããããšã¯ã§ããŸããããªããªãã å ã®ããŒãžã§ã³ã¯ä¿æãããŠããããã¢ã«ãŽãªãºã ã«ã¯ä»ã®å€ãã®å€æŽãšæé©åãæœãããŠããŸãããåãHTC Wildfireã®Cå®è£ ã¯èŸæžã5ç§æªæºã§åæåããçŽ50ããªç§ä»¥å ã«åèªãèŠã€ããŸãã
ãããã®æ°ã¯ãåžå Žã®ä»ã®å®è£ ãããåªããŠãããWord Game Baldaã®å®è£ ãšåãã§ããã ãŸããæ€çŽ¢ã¢ã«ãŽãªãºã ã®ãã€ãã£ãå®è£ ã䜿çšããŸããã
ãããŠãã¡ãããã²ãŒã ã«ã¯ãã©ãŒæ©èœããããŸãã-ããã¯ç«¶æè ãæã£ãŠããªãã£ã4ã7ã»ã«ã®ã«ã¹ã¿ã ãµã€ãºã®ç«¶æå Žã§ãã
ã€ã³ã¿ãŒãã§ãŒã¹
åœåãã€ã³ã¿ãŒãã§ãŒã¹ã¯ç§ãéçºãããã®ã§ããšãŠãã·ã³ãã«ã«èŠããŸããã äœããã®çç±ã§ãç§ã¯ã²ãŒã ãããŒãããã¯ã·ãŒãã«ã»ã«ã«æãããããã«ããããšã«æ±ºããã®ã§ãããŒãžãããããšãã圢ã§ç»é¢éã®é·ç§»ã®ã¢ãã¡ãŒã·ã§ã³ãè¿œå ããããšã絶察ã«å¿ èŠã§ããããã«æããŸããã
æ€çŽ¢ã®çµæã2ã€ã®åäœãããªãŒãã³ãœãŒã¹å®è£ ãèŠã€ãããŸãã-1ã€ã¯ããã¯ããŒã harismãæã€äººããã®OpenGLã®æ£çŽãªããªããã§ããã2ã€ç®ã¯ããªãããã·ãã¥ã¬ãŒããããã£ã³ãã¹äžã«åãçœãããªãŽã³ãæç»ãããããªãã®ã§ãã ç§ã¯OpenGLãšã¯åéã§ã¯ãªãã®ã§ã2çªç®ã®ãªãã·ã§ã³ãéžæããããšã«ããŸããïŒç¹ã«ããŠãŒã¶ãŒã0.5ç§ä»¥å ã«ãããã®éãã«æ°ä»ããªããšæãããå ŽåïŒã
ãã®ç¬éããã1ã€ã®äžå¿«ãªããšãå§ãŸããŸãã-ãªããªã ãã®ãããªã¢ãã¡ãŒã·ã§ã³ã®å Žåã次ã®ããŒãžãã©ã®ããã«èŠããããå®éã«ç¥ãå¿ èŠãããããã®åŸãç»é¢ããšã«ç°ãªãã¢ã¯ãã£ããã£ãæŸæ£ããå¿ èŠããããŸããã
ãã¹ãŠã®ç»é¢ã¯ãå転ããã¢ãã¡ãŒã·ã§ã³ãæç»ããã³ã³ããŒãã³ããšãšãã«åãFrameLayoutã«ãããŸãã
è£è¿ããšã次ã®ããšãèµ·ãããŸãã
// pageCurlView - , pageCurlView.bringToFront(); pageCurlView.setVisibility(View.VISIBLE); // current.buildDrawingCache(); Bitmap page1 = current.getDrawingCache(); // , next.buildDrawingCache(); Bitmap page2 = next.getDrawingCache(); // pageCurlView.animate(page2, page1, direction);
ç§ã¯ä»ã®æ¹æ³ãèŠã€ããããŸããã§ãã-ã¢ã¯ãã£ããã£ã§ã¯ããã®ãããªcãªã¢ãã¡ãŒã·ã§ã³ããã蟌ãããšã¯ã§ããŸããã
å ã®ããŒãžã§ã³ã¯æ¬¡ã®ããã«ãªããŸããã



ãã®ãã©ãŒã ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯çŽ2ãæç¶ããŸããã ãã¶ã€ã³ãŠãŒã¶ãŒã¯ç¹ã«äžæºãèšãããšã¯ãããŸããã§ãããããã£ãšæãããããã£ãã®ã§ãã ç§ã¯äžè¬çã«ãç§èªèº«ãããã€ãã®ç»é¢ãæããŠä»äºã«åããããããšãã§ãããšæ±ºããŸããã ããã¯äœãšããã®ããã«èµ·ãããŸããïŒ



ãã®è²ã®æŽåã¯æ¬åœã«ãŠãŒã¶ãŒãå«ã£ãŠããã®ã§ãç§ã¯æçµçã«ãã£ãšãŸãšããªäœãããã人ãèŠã€ããããšã«ããŸããã ããã€ãã®ããªãŒã©ã³ã¹ãµã€ãã«åºåãæ²èŒããæ°é±éãã¶ã€ããŒãéžã³ãŸããã çµå±ã®ãšãããã»ãšãã©ã®ãã¶ã€ããŒã¯Webãµã€ãã®ãã¶ã€ã³ãéçºããŠããŸããã¢ãã€ã«ãã©ãããã©ãŒã ã§åäœããéåžžã¯iOSã§ããåäœããŸããã§ããã 圌ãã¯ã500ãã«ä»¥äžããããªãã®é¡ã®ããã€ãã®ç»é¢ãæãã§ããŸãã 9ãããã«ã€ããŠã¯èª°ãèããŠããŸããã§ããããpsdãã¡ã€ã«ã ãã§ãªããpngãã¡ã€ã«ããã®ã«ããã確èªãããã®ã§ãã»ãšãã©ã®äººãé©ãããŸããã ãããã£ãŠãç§ã¯æäœé¡ãèŠæ±ãã人ã ããéžã¶ããšã«ããŸãã-$ 200ã ãããã¯ãéçºã«è²»ããããæåã§å¯äžã®ãéã§ããïŒåžå Žã§ã®ç»é²ãé€ã-15ãã«ïŒã ãã¶ã€ããŒã®äœæ¥ã®åŸãã»ãšãã©å€åã¯ãããŸããã§ããããã²ãŒã ã®èŠæ ããè¯ããªãå§ããŸããïŒãããŠæãéèŠãªããšã«ãã¯ãŒã«ãªã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³ãçŸããŸããïŒã



åºåãçµ±èšããšã©ãŒ
åºåãéããŠã¢ããªã±ãŒã·ã§ã³ãåçåããããšã«ããŸããã AdMobãåºåãããã€ããŒãšããŠéžæããŸããã AdMob SDKã®åã蟌ã¿ã¯éåžžã«ç°¡åã§ãåé¡ã¯ãããŸããã§ããã
BugSenceã䜿çšããŠãšã©ãŒãåéããŸããã ããã¯éåžžã«è¿ éãã€ç°¡åã«æ¥ç¶ãããããã¯åãªãããããã®ãªããã®ã ãšæããŸã-100ãè¶ ãããšã©ãŒãããæèã®é«ããŠãŒã¶ãŒãAndroidããŒã±ããã«ã¬ããŒããéä¿¡ããã®ã¯çŽ7ã€ã ãã§ãã
Flurryã䜿çšããŠäœ¿çšç¶æ³ã®çµ±èšãåéããŸãã-ãããç§ã«äœã®å©çãããããããšã¯èšããŸãããã圌ãã®çŸããã«ã©ãŒã°ã©ãã£ãã¯ãèŠãã®ã¯éåžžã«èå³æ·±ãã§ãã
玹ä»ãªã³ã¯ã®è¿œè·¡ã¯ãåºåãã£ã³ããŒã³ãå®æœããéã«ã圹ç«ã¡ãŸãã ãããè¡ãã«ã¯ãç°¡åãªBroadcastReceiverãç»é²ããåä¿¡ãããªã³ã¯ããã®äžã«ä¿åããå¿ èŠããããŸãã
AndroidManifest.xml
<receiver android:name=".ReferrerReceiver" android:exported="true" > <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>
ReferrerReceiver.java
public class ReferrerReceiver extends BroadcastReceiver { private final static String TAG = ReferrerReceiver.class.getSimpleName(); private final static String REFERRER = "referrer"; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String referrerString = extras.getString(REFERRER); Settings.getInstance(context).setInstallReferrer(referrerString); Log.d(TAG, "Referrer is: " + referrerString); } }
ãã®åŸãã¢ããªã±ãŒã·ã§ã³ãéå§ãããšãã«ã察å¿ããã€ãã³ããFlurryã«èšé²ããŸããã ããã¯ãã®åŸãåºåãã£ã³ããŒã³åŸã«åãåã£ãã€ã³ã¹ããŒã«æ°ãç¥ãã®ã«åœ¹ç«ã¡ãŸããã
ããã¢ãŒã·ã§ã³
ã²ãŒã ã¯ç¡æã§ããããšãå€æããã®ã§ãåžå Žã«å ããŠãããã€ãã®ãã©ãŒã©ã ã«apkãã¡ã€ã«ãæçš¿ããŸããã ã²ãŒã ã®ã©ã€ããã©ã³ãã®å åã«ãã£ãŠã¯ãw3bsit3-dns.comã®ã¿ãæäŸãããŸãã ãŠãŒã¶ãŒã¬ãã¥ãŒãšw3bsit3-dns.comã®ãã³ãã®ãããã§ãã²ãŒã ã¯ããã€ãã®æ©èœãç²åŸããããã€ãã®é倧ãªãã°ãä¿®æ£ãããŸããã äžè¬ã«ããã©ãŒã©ã ã§ã®ã¬ãã¥ãŒã¯ãåžå Žã§ã®ã¬ãã¥ãŒãããã¯ããã«æçã§æçšã§ããã ã²ãŒã ã®å ¬éåŸããã®ã¬ãã¥ãŒã¯ããŸããŸãªããã°ããµã€ãã«æ²èŒããå§ãããŠãŒã¶ãŒã®äžå®ã®æµå ¥ããããããŸããã
åœåãUbi Nuriã®ä»£è¡šè ãããéåœã®å³ããçŸå®ã«åãããŠã²ãŒã ã調æŽããããã«ãšãããªã¯ãšã¹ãããããŸããããã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¶ãŒã®97ïŒ ããã·ã¢èªã話ãããã®ãããªã²ãŒã ãéåœã§æ®åããå¯èœæ§ã¯äœããããç§ã¯åœŒãã«é£çµ¡ããªãããšã«ããŸããã
ã¢ããªã±ãŒã·ã§ã³ã宣äŒããäžã§æãéèŠãªç¹ã¯ãåžå Žã§ã®ã²ãŒã ãžã®æ祚ããé¡ãããéã«ãã€ã¢ãã°ãè¿œå ããããšã§ãã ãã®ãã€ã¢ãã°ãå«ãããŒãžã§ã³ã®å ¬éåŸã5ã€ãèœã¡ãè©äŸ¡ãäžãããã¢ããªã±ãŒã·ã§ã³ãã«ããŽãªã®ãããã«äžããå§ããŸããã ããã§ãã¢ããªã±ãŒã·ã§ã³ã®è©äŸ¡ã¯207ãå¹³åè©äŸ¡ã¯4.8ã«ãªããéåžžã«è¯å¥œã§ãã
AdMobã§çšŒãã ãéãããã§äœ¿çšã§ããŸãã100ãã«ã§120ãã«ã§åºåãè³Œå ¥ã§ããŸãã 2011幎12æ28æ¥ãš2012幎1æ12æ¥ã®2ã€ã®å°ããªåºåãã£ã³ããŒã³ãå®æœããŸããã 以äžã¯ãäžäœã«ããŽãªã®ã¢ããªã±ãŒã·ã§ã³ã®è©äŸ¡ã°ã©ãã§ãã2ã€ã®èµ€ãç¹ã¯ããã£ã³ããŒã³ã宣äŒããŠããŸãã

åºåã®åŸãã¢ããªã±ãŒã·ã§ã³ã¯å šäœçãªã©ã³ãã³ã°ã§äžæãå§ããŸãã
åºåã«å²ãåœãŠããããéã䜿ããšããAdMobã®çŽæã«ããããããã2ã3æéã¯æ¥äžã«åçã«è²»ããããŸãã
240ãã«ã§ã4800åã®ã¯ãªãã¯ãš469åã®ã€ã³ã¹ããŒã«ãã§ããŸããã ãããã£ãŠã1ã€ã®ã€ã³ã¹ããŒã«ã«çŽ50ã»ã³ããããããšãå€æããŸããã åã50ã»ã³ãã§ãFlurryããä¿èšŒä»ãã€ã³ã¹ããŒã«ãè³Œå ¥ã§ããŸãããFlurryã§äœ¿çšã§ããæäœé¡ã¯400ãã«ã§ãã
æŽæ°ãšæåŸã®ãã£ã³ããŒã³ã®çŽåŸã«ããŠãŒã¶ãŒæ°ã¯æ¥æ¿ã«å¢å ããŸããã ãã®ã°ã©ãã§ã¯ãã»ãã·ã§ã³ã®åèšæ°ïŒèµ€ãç¹-åºåãã£ã³ããŒã³ïŒïŒ

åºåã®å¹æã¯ãæ°èŠãŠãŒã¶ãŒã®ã°ã©ãã§æãããèŠãããŸãã

æåŸã®æŽæ°ãšåºåã®åŸãAdMobã®åçã¯1æ¥ããã15ã20ãã«ãã40ã50ãã«ã«å¢å ããŸããïŒéå»30æ¥éã®ã°ã©ãïŒã

2011幎10æ12æ¥ä»¥éãã¢ããªã±ãŒã·ã§ã³ã¯AdMobåºåã§1,095ãã«ïŒéå»30æ¥éã§700ãã«ïŒãç²åŸãããã®ãã¡200ãã«ãåºåã«è²»ããããŸããã
次ã¯ïŒ
ä»æ¥ããŠãŒã¶ãŒã®æ°ã¯å¢ãç¶ããŠãããåºåã¯ããããã®åå ¥ããããããŸãããããŠãã²ãŒã ã«æããæªæ¥ãããããšãé¡ã£ãŠããŸãã ããã«é¢ããé·ã話ãã€ã³ãã£ãŒã²ãŒã Ubi Nuriã®åºçæš©ã®å£²åŽãèªãã ã®ã§ãç§ã¯ãã®æ¹åã«é²ãããšã決ããŸããã ãã®ã²ãŒã ã¯ãã·ã¢åžå Žã§ã®ã¿äººæ°ãããããããã·ã¢ã®å€§æéçºè ãšã¢ãã€ã«ã²ãŒã ã®ãããªãã·ã£ãŒïŒAlawarãGame InsightãHerocraftãJoybitsïŒãéžã³ã圌ãã«å¹žçŠã®æçŽãéããŸããã æ®å¿µãªãããç§ã¯åœŒãã®ããããããè¿äºãåãåããŸããã§ãããæããã«åœŒãã¯æçŽãéããããåã«ããããç¡èŠããŸããã
èå³æ·±ãå€ç®çãªçµéšãšæºè¶³ãããŠãŒã¶ãŒã«ãããããããç§ã¯ãã以äžã²ãŒã éçºãããããããŸããã 倧éã®ã¢ããªã±ãŒã·ã§ã³ã§ã®ã¿ãéã皌ãããšãã§ããããã«æãã-ãããããŒã±ããã«ã¯Outfit7ã®è©±ãããåç©ã "Merry Farmers"ã®ã¯ããŒã³ãæ£ãã°ã£ãŠããŠããã®ãããªã²ãŒã ã¯ç§ã«ã¯ãŸã£ããé¢çœããªãã
ãããªïŒ
æŽæ°
habraeffectã®å°ããªèŠèŠçãªã€ã©ã¹ããæäŸããŸãã
Flurryããã®æ°èŠãŠãŒã¶ãŒã«é¢ããçµ±èšïŒèµ€ãç¹-èšäºã®å ¬éïŒïŒ

Admobã®çµ±èšïŒèµ€ãç¹-èšäºã®æ²èŒïŒïŒ

å ¬éæ¥ãã4æ¥éãåžå Žã®æ Œä»ãæ°ã¯209ãã371ã«å¢å ããã¢ããªã±ãŒã·ã§ã³ã¯ãããã«ããŽãªã®28äœã«äžæããŸããã
ãããŠãç§ã«ãšã£ãŠèå³æ·±ããšæãããå¥ã®æ°å-çŸæç¹ã§ã¯ããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã§åèš7幎2ãæãè²»ãããŸããã