hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

GameCenterのLeaderboardを使う時にハマったポイント

iOS

iOSのGameCenterにあるスコアボードであるLeaderboardを使った時にハマってしまったポイントを書き残します。 基本的な使い方については公式PDFを参照してください。 Leaderboardにスコアが反映されない 色々な要因が考えられます。。。 Category設定ミス GK…

iOS版「nicoマンガ」は結局リリース出来ず

iOS

本日、ようやくAppleのレビュアーと電話する機会を得ました。しかし、結果は今までテキストでやり取りしていた事が会話になっただけで、こちらの言い分は受け入れられませんでした。ちなみに女性の方で日本語は片言レベルで少し話せる感じ、譲らない姿勢と鉄…

iOS/Androidアプリ開発時に感じた差異

先日「nicoマンガ」という非公式ニコニコ漫画サービスのビューアをAndroidでリリースしました。その時に同様な機能を実装したiOSアプリも作っていた事を前回のブログで書きました。今まで誰かが作ったアプリを別プラットフォームへ移植、もしくは自分で作っ…

ポルノ扱いでrejectされたiOSアプリをAndroidへ移植したよ

iOSアプリでポルノ扱いされたのでAndroidへ逃げてきました!ニコニコ静止画【マンガ】の非公式マンガビューアをAndroidアプリとしてリリースしました。Android4.0以上でおそらく動作し、ニコニコ静止画サービスのマンガコンテンツを閲覧する事が出来ます。 A…

「顔ペロリスト」アプリをリリース

WindowsPhone8向けアプリとして「顔ペロリスト」をリリースしました。http://www.windowsphone.com/ja-jp/store/app/%E9%A1%94%E3%83%9A%E3%83%AD%E3%83%AA%E3%82%B9%E3%83%88/6014889b-1e59-4645-88d7-b98a7ad3a3c0選択した画像をロック画面の背景に設定す…

ロック画面の背景画像を切り替える方法

WindowsPhone8からロック画面の表示内容をアプリ側から変更出来るようになりました。変更出来る内容は以下の2つとなります。 ロック画面の背景画像 ロック画面の通知領域 今回は背景画像の切り替え方法について書きます。なお、だいたいここ見ればやり方が分…

ColorfulLockScreenアプリをリリースしました

WindowsPhone8向けのアプリとして「ColorfulLockScreen」というアプリをリリースしました。http://www.windowsphone.com/ja-jp/store/app/colorfullockscreen/d1f3e847-8b81-46ce-8449-752720269f30 特徴 ロック画面の背景画像を定期的に切り替えるアプリで…

画像サイズ一覧

WindowsPhone8のアプリ内部でよく扱う画像サイズを一覧化しました。表記していませんが画像形式は、スプラッシュ画面はjpg、それ以外はpngとなります。 アプリ内部で使う画像サイズ一覧 スプラッシュ画面だけは固有ファイル名で認識し、必要な場合はサポート…

WP8での国際化対応(ローカライズ化とか、多言語化とも言うよねー)

WindowsPhone7では面倒だった国際化対応も、WindowsPhone8では随分と楽になりました。 WP7SDK から WP8SDK での変更点(WP7時代を知らない人は見なくていい) Visual Studio 2012のWPテンプレートを作成すると、主に以下が変わっていました。 XAMLからRESXファ…

アプリ上でText to Speech(TTS)を行う

Windows Phone 8から音声読み上げが可能になりました。音声検索などで読み上げが行われます。 この機能はシステム上だけではなく、アプリ上からも利用可能です。今回はアプリ上からテキスト読み上げを行う方法を書きます。 利用APIについて 利用するAPIのはS…

アプリ上で音声認識検索を行う

Windows Phone 8から音声認識検索が可能になりました。どこからでもスタートボタンを長押しする事で、音声認識検索で端末上のアプリを起動する事が出来ます。音声認識検索はシステム上だけではなく、アプリ上からも利用可能です。今回はアプリ上から音声認識…

日本語表示できないWP8端末は開発用端末としてどうなのか

EXPANSYSでHTC 8Xを買ったのですが、言語設定で日本語が選択できませんでした。日本語表示できない事は一見すると日本語ローカライズ版のアプリ開発に大きな支障が出るように思える為、日本語表示の設定が出来ない時の支障について整理してみました。 日本語…

LiveTileで複数画像切り替える方法

WindowsPhone8からLiveTile周りに色々回収が入りました。その1つとして今までLiveTileは表と裏に設定した2枚の画像が捲れるアニメーションしか設定出来なかったのが、1〜9枚の設定画像が縦スクロールのアニメーションをしながら切り替わる方法が追加されまし…

Windows Phone 8 SDK がリリースされたのでインスコしてみた

Windows Download Centerで公開されており、以下のリンク先からDL出来ました。http://www.microsoft.com/ja-jp/download/details.aspx?id=35471開発する為にはWindows 8もしくはWindows 8 Proが必要で、さらにエミュレータを利用するにはWindows 8 Pro且つSL…

「実践 スマートフォンアプリケーション開発」本を執筆しました

iOS5.1、Android4.0、Windows Phone7.5を対象とした本を八木さん・原さん・私の三名で執筆しました。内容は初心者向けで、3プラットフォームの違いが何なのかを知る為の比較本となっております。5月頃から出す出す詐欺してたのでバージョンが若干古いですが…

MetroStyleAppsのネタを書き貯めるブログ

MetroStyleAppsネタを以下のブログに書き溜めて行こうかなーと思ってます。やる気が出て継続して行けば書いていくと思います、たぶん。http://hyoromo-msa.blogspot.jp/ はてダですが、今後は継続しなさそうなネタを書いていくと思います。そんな感じです。

Windows8(CP版)を使う上で知っておく必要がある操作

Windows 8 Consumer Preview が2末にリリースされ、割と皆さん何かしらにインストールしていると思います。で、インストール直後の感想は「使い方わからねーよっ!」だと思うので操作方法を簡単にまとめてみました。※なお、本エントリー中に登場する名称は勝…

WindowsPhoneアプリ「カップラーメンタイマー」Ver.1.0.0 をリリースしたよ

三回目のリリースとなるアプリ「カップラーメンタイマー(CupRamenTimer)」をリリースしました。Zuneソフトウェアが入っていない場合は、以下URLのWebのMarketplaceを参照ください。http://www.windowsphone.com/ja-JP/apps/481be819-f95a-46a2-93bf-83a982c9…

WindowsPhoneアプリの審査結果の内容について

WindowsPhoneアプリをMarketplace*1へ公開するためには、Microsoft社による審査を通過する必要があります。iPhoneアプリのような審査が行われ、リジェクト時にはテスターが "どういったテストケースを行い"、"どういった観点でリジェクトしたか" を明記したP…

WindowsPhoneアプリ「ミクのライブタイル」Ver.1.0.0 をリリースしたよ

二回目のリリースとなるアプリ「ミクのライブタイル(MikuLiveTile)」をリリースしました。 前回リリースした "STile" とほぼ同じ機能で、ブラウザやMarketplaceへのショートカットタイルを作成するアプリです。異なる点は画像をユーザーが任意設定するのでは…

WindowsPhoneアプリ「STile」Ver.1.0.0 をリリースしたよ

初めて Windows Phone にアプリをリリースする事が出来ました。 このアプリはPicture Hub上で観覧できる画像をLiveTileに設定しちゃおう!と言う二番煎じどころか五番煎じくらいのアプリです。 他のアプリと異なる点は、なんと言ってもLiveTileタッチ時のイ…

Androidアプリ「モコちゃん」をリリースしました

昨日、AndroidMarketに「モコちゃん」という名前のアプリをリリースしました。アプリ詳細は上のバナーをクリックして確認ください。 今回は「子供が挨拶の練習をするための教育用アプリ」をコンセプトに開発しました。 子供って何を好むのかなーって考えると…

新・開発者に便利なアプリ紹介

昔に書いた内容がクソの役にも立たないので新たに書き直しました。 BatteryMix バッテリー管理アプリ各アプリ稼働率やバッテリー影響具合をグラフ化してくれるため、自分の開発したアプリがどの程度端末に影響を及ぼすかが手軽に計測できる。 Quick Settings…

Notification表示されてればTaskKillerに殺されないServiceの作り方

ユーザーへ動作している事が認知されるServiceはTaskKillされない実装が出来るらしい。そのため「Notification表示中」という条件が付いてしまうが、TaskKillerには殺されない実装が出来るみたい。 方法 そもそも android developpers の Service#startForeg…

HomeThemeアプリの変更内容と作成方法について

昨日、ADW.Launcher と GO Launcher EX ホームアプリのテーマをリリースしました。 GOランチャーEX ホームテーマ -初音ミク- (GO Launcher EX Theme -MikuHatsune-) ADWホームテーマ -初音ミク- (ADWTheme -MikuHatsune-) テーマ変更でどういった変更が出来…

In-app Billing試してみた その1

先日からアプリ内課金が行えるようになったので、現在開発中のアプリに仕込んでみました。今回は導入からアプリ課金ページ表示の所まで簡単に書き残しておきます。 概要 だいたいの説明は android developers ページに載っています。英文読んでから気づいた…

タイル状に画像を敷き詰める

よくWebサイトであるような、小さな画像を背景にタイル状に敷き詰める方法。xmlでの方法を書く人は居るのに、javaで書いてくれてる人が居ないので整理しておく。 XML指定での方法 res/drawable/icon_repeat.xml ポイントはtileModeをrepeatに設定している事…

SoundPoolのload上限

同じインスタンスでloadし、再生有効なIDの上限は255までと決まっています。Sound Idが256以降になるとIDの採番は行われますが、SoundPool#play で256以上のIDを引数としても再生されません。 すなわち使用できるSound IDは1から255。

Gesture APIを利用

AndroidOS1.6以上から使えるようになった android.gesture APIを試してみました。Googleが提供しているSampleがあります。 ジェスチャーライブラリ作成 事前に使用するジェスチャーを登録しておく必要があります。ジェスチャーを登録する方法は以下の二種類…

Admob設定方法

自分用メモ。コピペでいけるように書いてるつもり。Admob自体の初期設定に関しては他のサイトを参照ください。 配信アプリケーションのサイト上での設定 Admob公式サイトのmy site上にある「サイト/アプリケーションの追加」をクリック。 Androidアプリケー…

GalaxyTab固有の問題と解決方法

海外のGalaxyTabで、現時点で見つけた問題と解決方法をまとめました。なお、国内向けに発売されるGalaxyTabでも同様の現象になるかは不明です。 Activityのウィンドウサイズが小さく表示される このように表示されるアプリがあるみたい。少し分かり難いです…

ProGuardを使っての難読化方法

ProGuardはJavaコードを最適化/難読化するためのツールです。apkのサイズが少なくなったり、apk解析された際に解析され難くなります。 今回は難読化のさせ方がよく分からなかったので整理しておきました。なお、ProGuardのバージョンは4.5を使用しています。…

リソースフォルダ名の設定方法

リソースフォルダ名って色々な条件を設定出来るけど、ついつい忘れがちです。例えば、hdpiでも解像度が800×480・854×480・960×640があっても、それら個別に画像やレイアウトを用意できちゃえます。 なお、以下の表にあるdrawableはlayoutやvalue等に置き換え…

NativeHeapSizeの調べ方

すぐOOMになる!もうVM落ちちゃったじゃない!て、人のタメにHeapSizeの調べ方を書いておく。ちなみにService系を作っているので基本LogCatに出したりSDcardに書き込む方法を好んで使ってます。長時間に渡って採取する必要が無ければ他の方法を取る方が分か…

AndroidMarketのアプリ詳細から「開く」で起動させるには

MainActivityのあるアプリならMain画面が起動されますが、そうではないService系アプリの場合はどうしたら良いのでしょう?一番よく取られるやり方はLauncher画面を一つ用意する事です。HelpをMainActivityにすればLauncher一覧に表示され、Marketからも開け…

Hello from JNI!

NDKやらにゃなーと思ってので試して見ることにしました。使用するのは Android NDK, r4 です。r3とr4ではNDKインストール手順が異なりますし、今後また変わるかもしれませんので注意してください。 今回は android-ndk/samples/hello-jni をコピペしながら実…

マナーモード状態の取得

マナーモードON/OFF時にBroadCastされるのでReceiveすればマナーモード状態を取得できます。 IntentFilter設定 Javaコード上で以下のように設定。 IntentFilter filter = new IntentFilter(); filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); r…

BitmapFactory.Options の使い方   の説明をちゃんとしたかったな...

画像読込時のOutOfMemory回避のお伴に BitmapFactory.Options が非常に有効です。本日はそんなAPIで何が設定出来るのか整理してみました。 設定一覧 inDensity bitmapのpixelを調整するらしいけど、どう使っていいかよく分からない。 inDither trueの場合、…

Android Pad対応方法

今までいくつかのPadを見てきましたが、今のところの共通点は以下のようになります。 Density Dpi が 160dpi(mdip)以下 解像度は480×800以上 この事から分かるように、dpiが低く解像度を高くすることで携帯端末よりも大きいディスプレイを快適に使うための工…

「ミクのライブ壁紙(MikuLiveWallpaper)」をリリースしました

アプリの紹介はこっそり始めてたオレオレなアプリまとめサイトに内容を記載しています。今回はLiveWallpaperアプリを開発するにあたり、詰まった点などを適当に書き残しておきます。俺の屍を超えてゆけ... Out Of Memory との闘い LiveWallpaperでパラパラア…

JN-DK01ベース端末のバッテリー情報について

素のAndroidの場合、内部で保持しているバッテリー情報は1%刻みで持っていますが。JN-DK01ベースの端末*1の場合は10%刻みで保持しているようです。 保持の仕方も、例えばバッテリー残量が80%から70%になった場合と60%から70%になった場合で、内部に保持され…

LiveWallpaper設定時のOutOfMemory発生原因

LiveWallpaperでプレビュー表示から設定したときにOutOfMemoryエラーが起こりやすい原因を調べてみました。 新規設定 LiveWallpaperをプレビューで表示 プレビュー上でLiveWallpaperアプリ起動 LiveWallpapserをHomeに設定 Home上でLiveWallpaperアプリ起動 …

ステータスバーの高さを求めて...

ステータスバーの高さって端末毎に違いますよね?低/中/高解像度毎に違うのは別に構わないのですが、Xperiaのように高解像度だけど他高解像度端末と異なるサイズなどあり、どうすりゃいいんだよ!と思ったけど、1つの解決策としてシステムアイコンのサイズを…

LiveWallpaperでスクリーンタッチしたら呼ばれるアレ

スクリーン上でタップしたときに呼ばれるonCommandメソッドの特性を整理しました。 取得できるイベント 2種類あります。 スクリーン上の何も無い場所をタップ スクリーン上でAppIcon移動 なお、AppWidget作成やショートカット作成ではコールされませんでした…

Bitmap, Drawableに変換

忘れがちなのでメモ Resource → Bitmap BitmapFactory.decodeResource(getResources(), R.drawable.icon) Resource → Drawable getResources().getDrawable(R.drawable.icon) Drawable → Bitmap ((BitmapDrawable) drawable).getBitmap() Bitmap → Drawable …

LogCatの見かた

Android開発し始めたばかりの人で、LogCatにどんな情報が流れてるか分からない。って人が多いので知ってる範囲で整理しました。 エラーの種類 タイプ Log出力方法 ログの意味 V Log.v(TAG, "VERBOSE") 簡易メッセージ D Log.d(TAG, "DEBUG") デバッグメッセ…

LiveWallpaperの核、Engineのライフサイクルを整理してみたよ

LiveWallpaperはWallpaperServiceを継承したメインクラスから、Engineを継承したLiveWallpaperの核となるクラスから構成されています。今回はそんな核なクラス、Engineのライフサイクルを整理しました。 LiveWallpaper設定時*1 onCreate onSurfaceCreated on…

なんでAppWidgetすぐ死んでしまうん?

Android端末に対して、一定以上の負荷を掛けると ActivityManager が悲鳴を上げて各Activity/Service が落ちる場合があります。もちろんAppWidgetも例外なく落とされるのですが、落とされたアプリをもう一度起動しようと ActivityManager は頑張ってくれます…

ショートカットのアプリ作成方法

"ホーム画面に追加" にある "ショートカット" にリストアップされる「ショートカットのアプリ作成方法」を簡単にまとめます。 AndroidManifest actionをショートカット特有のモノにすればショートカット一覧に並びます。 <activity android:name=".ShortcutActivity" > <intent-filter> <action android:name="android.intent.action.CREATE_SHORTCUT" /> </action></intent-filter></activity>

IS01 -AppWidgetに関して-

KDDIデザイニングスタジオでIS01端末の展示が行われていたので触ってきました。既にファーストインプレッション記事が多く上がっており、今更ですが主にAppWidget周りを見てきたので書いておきます。 Homeの特徴 解像度は960×480ですが、右側にメニューがあ…