FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・ジン・ラミー』を公開しました。
    Android/iOS https://goo.gl/PYKFYG

    タグ:Android

      このエントリーをはてなブックマークに追加 Clip to Evernote
    以前の記事でUnity5でアプリを作ると、immersiveモードがデフォルトで有効になっていると書きました。immersiveモードを解除して画面下部のボタン(ナビゲーションバー)を表示する方法が判明したので、備忘録として残しておきます。

    Unity 日本語へルプデスクというUnityによる公式のサポートページに解決策がそのまま載っていました。このサイトは最近できたものでUnityの質問を日本語でできるとのことです。

    そのサイトのこのページに私の知りたかった解決策が載っています。

    アプリの起動時にでも
    Screen.fullScreen = false;
    を呼んでおけばimmersiveモードが解除されます。

    とりあえずNexus 7 (2013)では作ったアプリが問題なく動作していました。
    Android 4.3以前の端末でこのコードの悪影響がないのだろうかという心配はありますが、実機がないので調べられませんでした。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    安いスマートフォンがないかと調べていて見つけたのがAscend G6です。
    現在Amazonにて14000円(私が買った時は18000円)ほどで買えます。


    SIMフリーの端末なので、適当なSIMカードを入れればスマートフォンとしても使えます。
    Wifi専用ではなく、各事業者の通信網を利用できます。


    <個人的にに気になったスペックについて>

    • LTE/3G対応――低価格の端末ではLTEに対応していないことが多いので、対応していることはとても良いです。

    • 内蔵容量が8GB――実際に使えるのは5GBほど。少ないので、データを大量に追加ダウンロードしてくるゲームは厳しいです。

    • microSDカードに最大32GB分対応――SDカードにアプリが移せるものは移すことで内蔵容量が少ない問題が軽減されます。アプリによってはSDカードに移動できてもデータが内蔵の方に記録されるものもあるため、これで問題が解決するわけではないです。

    • サイズ(131.2mm × 65.3mm × 7.85mm)――片手で持てるサイズなので、良いと思います。



    値段を考えると、相当高性能ではないでしょうか。
    当然この端末は開発に使用します。
    性能が低いからこそ、問題が発見しやすくなるのではないかと期待しています。

    開発用の端末として使うにはいくつかの設定があります。
    それについては今度まとめておこうと思います。

    Ascend G6のドライバが公式のページで見つからなかったので、検索して見つかったページからダウンロードしました。
    ルート化するための方法をまとめたサイトのようです。便利ですが、公式にあったらその方が良いと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    apkファイルというのはAndroidのアプリを作ったとき、最終的に出来上がるファイルのことです。
    このファイルをDeveloper Consoleで登録することでアプリを配信することができます。

    中身はアプリのプログラム、画像、音、AndroidManifestなどが含まれています。
    AndroidManifestというのはAndroidのアプリでは重要なファイルです。
    xml形式で書かれたアプリの設定をまとめたものです。
    このAndroidManifestの設定で起動する画面を決めたり、権限を割り当てることができます。

    アプリをビルドしてapkファイルができたとき、AndroidManifestが正しく設定されているか確認したい時があります。
    Unityを使っている場合は、AndroidManifestをプラグインのために使用すると最終的に出来上がるマニフェストファイルがどうなるか分かりにくいです。Project Settingsで指定したAndroidManifestのための設定とファイルとして存在するAndroidManifestがマージされるのです。
    AndroidManifestが正しくないとアプリが動かないこともあるので、どうなっているか確認したいわけです。



    apkの中にあるAndroidManifest.xmlの確認方法は以下の通りです。

    apkファイルを用意します。XXXXX.apkのような名前だとします。
    apkという拡張子をzipに変えます。
    そうすると解凍することができるので解凍します。(Windowsならダブルクリックするだけ)

    解凍したフォルダにAndroidManifest.xmlというファイルがあるはずです。
    これが見たいファイルなのですが、バイナリになっています。
    このままだとわかりづらいので、xmlのバイナリ形式をテキスト形式にしてくれるツールを使います。

    AXMLPrinter2.jarというツールをまずDLします。
    置き場所はどこでも良いので、自由においてください。

    java -jar (AXMLPrinter2.jarのパス) (バイナリ形式のxmlのパス)
    というようにしてツールを実行すると、テキスト形式になったxmlが表示されます。



    コマンドを実行するのが良く分からない場合は、
    AXMLPrinter2.jarをデスクトップに置き、見たいAndroidManifest.xmlもデスクトップに置きます。

    アクセサリ->コマンドプロンプトを選択し、cdコマンドでデスクトップに移動します。
    その場所でjava -jar AXMLPrinter2.jar AndroidManifest.xml > output.xml
    を実行すればoutput.xmlがテキスト形式のマニフェストファイルになっています。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    アプリ開発の最初にかかる費用は既に書いたので、次に端末代について書きます。

    「端末がなぜひつようなのか?」というのは、PC上では確認できない機能というものがあるからです。
    また確認作業は「実際のものでやってみないと何が起こるのか分からない」という恐ろしいことがあるのです。
    絶対になければならないわけではないですが、確認はやれるだけやった方が最終的に皆が幸せになれると思います。

    広告の実装なんかはその典型例です。
    PC上では全く表示されないのが普通だと思います。理由はAndroidの機能を呼び出しているからだと推定します。

    端末が必要な理由は、重要度の高い(FreelyAppsの場合は広告)機能がうまく動いているのかを検証するためです。
    もし動いていなければ、広告が出ずに収益が発生しなくなります。もっとまずい場合はアプリが止まってしまうかもしれません。
    このようなことが起きていないかということを調べる手段が、端末にアプリをインストールし実行するということになるのです。

    必要性を説明したところで端末を買うことに移ります。
    どの端末を使うかによって値段は大きく異なります。安いものだと1万円切るくらいです。
    私の場合で言うと、Nexus 7 (2013)です。
    一番安いモデルでAmazonでは、現在約2万円です。
    GoogleとASUSが開発したもので、名前からもわかるように標準的なタブレットに位置付けられます。

    特に好みがなければNexus 7 (2013)をお勧めします。
    薄くて使いやすいですし、性能もそれなりに高いです。
    Nexus 7 (2012)に比べて横幅がせまくなっているので、片手でもつかめます。これは結構使いやすさに関係すると感じます。
    Android 5.0にも更新することができます。

    たくさんの機種で実行することが最も良いです。
    出回っているAndroid端末は数多くありますので、ユーザーはそれだけの端末で遊ぶ可能性があるからです。
    しかし、現実的には無理です。
    端末を買いそろえること、それぞれの端末で確認作業をすること、これらをすべて行うには資金と時間が足りません。
    企業レベルでも多くのユーザーが持っている端末を買うというのが妥協点でしょう。
    個人で行う開発では、せいぜい自分の使う端末の数――1、2個でしょう。
    儲けが出てきたら、開発資金に回して端末を買うというのが良いのではないでしょうか。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Androidアプリを提出するまでに何にどれくらいの費用がかかるのかをまとめます。
    これからアプリを作ってみようと思う人は、重要なことだと思います。
    また、アプリで稼ぐなら、収益だけでなく費用も考えないといけないのは明らかです。
    ここにあげるのは必須と思われる費用だけです。実際の開発には他にもかかるものがあります。

    はじめるにあたって費用がかかります。
    まずパソコンです。
    アプリを作るために必要になります。
    10万円程度で用意できると思います。

    Androidのアプリを作るだけなら、パソコンがあれば十分です。
    Java、Android SDKは無料で手に入るので、作るのは無料で行えます。
    個人のホームページ上で公開するなら、それも無料です。

    Androidアプリを作るなら、Google Playに置くのが普通だと思います。
    全世界に配信できますし、どのAndroid端末からもアクセスができるからです。
    Google Playに公開しようとすると、開発者の登録費用として25$かかります。(1$=120円として、3000円です)
    一回登録するだけでずっとアプリを公開していけるので、それほど高い値段ではないと思います。

    そのほかの費用として、電気代、住居費、通信費があります。
    電気代と住居費はすべてがアプリ開発に使われるわけではないですが、かける時間しだいでは多くの割合をアプリ開発のために使っていると考えることができます。
    極端な話、家にいる時間の全てが開発時間なら、全額がかかると思って差し支えないでしょう。
    通信費はインターネットにつなぐためにかかる費用分です。
    回線とプロバイダー料金がかかります。

    ざっと見積もるとこんなところでしょうか。


    【初めにかかる費用】
    パソコン:100,000円
    Google Play デベロッパー アカウント登録費:25$ = 3,000円
    小計:103,000円

    【月々かかる費用】
    電気代:8,000円 × 20% = 1,600円
    住居費:70,000円 × 20% = 14,000円
    通信費:4,000円
    小計:19,600円

    合計:122,600円(はじめの月)


    月々にかかる費用は人によってかなり異なると思います。
    私の場合は大体これくらいです。
    20%にしたのは、土日の8割くらいとして見積もりました。( 2 / 7 * 0.8 = 0.228 )

    開発の初めは、ほとんどパソコンの値段ということがわかります。
    時間がたつにつれて、住居費の負担が一番重くなってくるでしょう。
    ただ、大抵の人は既にこれらの料金を払っているでしょうから、新たに必要なのはアカウントの登録費くらいかもしれません。
    アプリの開発だけに必要な費用としては、数千円だけなので敷居はかなり低いと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Android 4.4でimmersive Full-Screen モード(以下、immersiveモードとします)ができたようです。
    以前はフルスクリーン表示といっても、画面下部に戻るボタン等が出ていました。
    これを消し、全画面を利用できるようになるのがimmersiveモードのようです。
    ディベロッパーサイトに使用方法について書いてありました。

    画面下部に出ているボタンを消す必要は、アプリによると思います。
    下の方にボタンがたくさんあるような場合は、ない方が良いです。
    個人的にはあった方が便利なので、あればうれしいです。

    このimmersiveモードはUnity5でアプリを作るとデフォルトで有効になっています。
    それだけなら別に良いのですが、使っているインターステイシャル広告(画面全体にでるもの)を表示すると、ボタンが出てきてしまいます。広告表示後にもボタンが残ってしまうのは、バグのように見えて良くないのです。
    その状態でアプリを残したままメニューに戻り、アプリに戻ってくるとボタンが消えます。
    なんだかバグのような気がしてきます。

    この記事のスクリーンショットの下部に黒いところがあります。これがボタンの領域です。

    現在、Unity5で開発を続けているのですが、この問題があるのでリリースするUnityのバージョンをどうするか悩んでいます。将来的にはUnity5に移行するのは確実なので、微妙なところです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity Remote 4という機能があります。
    Unityから出ているAndroidアプリを端末に入れて、それとPCで動かしているUnityをつなぐものです。
    PCとつないだ端末にはUnityで実行中のゲーム画面が表示されます。端末からの入力がUnityへ送られゲームを操作することができます。
    スマホで操作と画面の表示を行い、処理をUnityで行うようになります。

    端末にアプリをインストールせずに実機で遊んだときの大体の動きを確認することができます。
    いちいちインストールせずに実行できるのは非常に大きいです。
    インストールはビルドと転送に時間がかかり、繰り返していると効率が悪いです。
    自動で端末にインストールされるような環境を作れば理想的ですが、多少手間がかかります。
    手っ取り早く確認するという点で開発中はUnity Remoteは便利だと思います。

    以下は手順です。
    まずアプリを端末にインストールします。
    インストールしたアプリを起動し、USBケーブルでPCと接続します。
    実行したいUnityのプロジェクトを開き、MenuにあるEdit->Project Settings->Editorを選びます。
    menu.png

    以下のようにEditor Settingsが開くので、Unity Remoteの項目のDeviceをAny Android Deviceにします。
    editor.png

    この設定が終わったら、Unityの再生ボタンを押して実行すれば端末にゲーム画面が表示され、入力することもできます。

    ※うまく動かないこともあり、Unityを再起動したらうまくいくことがありました。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    UnityでAndroidにアプリを作っています。
    作っているときはPC上で実行できるので、そこで確認をしています。
    ある程度作ってからは、Android端末用にAPKファイルを作成し実機で動かして確認をします。

    Androidは端末の種類が豊富なため、確認ができない機種あります。
    広く普及しているものや一般的なものを使って、確認するのが現実的な所だと思います。(コスト――この場合は時間とお金――を掛けれるなら話は別です。)
    私の場合はNexus 7 (2013)を使って確認をしています。

    ただ、操作の感覚は大きさによってかなり違うものなので、
    複雑な操作を要求する場合はいくつかの端末で確認しないといけないと感じています。

    携帯だと結構な値段がする割にすぐ新しいものが出たりして困ります。
    タブレットは長く使えて安くて良いですが、使っている人は少数だと思われます。

    ドラッグやフリックを使う場合は、確認が必要という認識です。
    逆にいえば、それらを使わないほど簡略化できるように作れば良いわけです。
    現時点ではドラッグやフリックは作る予定がないのです。

    このページのトップヘ