FreelyApps

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


    アプリ『トランプ・7並べ』を公開しました。
    Android/iOS https://goo.gl/zsFces

    2016年08月

      このエントリーをはてなブックマークに追加 Clip to Evernote
    8/29に『トランプ・ポーカー ~5カードドロー~』をリリースしました。
    tp5d_title

    トランプゲーム「ポーカー」が遊べるアプリです。
    ルールは5カードドローで日本でよく遊ばれているものです。5枚配って、1回手札を交換して勝負するものです。
    5枚のカードで役を作って勝負するゲームで知らなくても遊ぶことは簡単です。チップを賭けるところがちょっと難しいので、賭けなしで慣れてからやってみると良いと思います。

    ポーカーはいろいろなルールがありますが、ドローポーカーは最も古いものの一つです。
    カードの交換を自分で選ぶという特徴があるので、賭けなしでも面白いです。このアプリでは賭けのありなしとJokerのありなしを設定できます。
     
    tp5d-0829

    iOSにもアプリを出せるようになったので、今回からはAndroidとiOS同時にリリースしていくつもりです。
    ポーカーはカジノでも行われるギャンブル的な側面もあります。どちらのストアにも疑似ギャンブルという設定をしています。
    (実は現代のカジノではドローポーカーは行われてないでしょう。今はテキサスホールデムがほとんどだと思います。)

      このエントリーをはてなブックマークに追加 Clip to Evernote
    8/18に『トランプ・アメリカンページワン』のiOS版をリリースしました。
    appstore-tap

    iOSのアプリを作るのはこれが初めてのことなので、いくつか躓くことがありました。思ったよりは大変ではなかったというところでしょうか。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    iOSアプリ配布への道のり」に書いたようにMacBookが手に入り、iOSのアプリのリリースへ向けて動き出したところです。

    まずは最も新しいAndroidアプリであるトランプ・アメリカンページワンを移植することにしました。これはUnityのバージョンが新しいということでアップデートによる影響が少ないためです。
    Macにプロジェクトを持って行って、ビルドするとUnityエディター上では普通に動きました。これこそがUnityの大きな利点なわけですが、問題が起きずにそのまま動いたのですごいと思いました。UNITY_ANDROIDの定義によるところを少し直したくらいです。
    iOSのビルドでは2段階を踏みます。UnityでのビルドではXcodeのプロジェクトが作られます。この先はXcode上でビルドをしてアプリを実機にインストールするというようになります。iOSのアプリはすべてXcode上で作らなければならないということです。(Androidではここら辺が自動で行われ、APKが得られるので楽なんですが。)

    Xcode 7からはApple Developer Program(AppStoreにアプリを配信するには契約が必要)に参加しなくても実機にアプリをインストールできました。とりあえずアプリが作れるのか試すという意味では無料であるというのは良いです。実機の方でアプリを信頼するかという質問に答えれば使えるようになりました。
    Apple Developer Programを契約するとアプリの作成時の署名等が変わります。このあたりが過去の情報だとかなり大変だというかわかりづらいそうですが、現在はすべてXcodeがFix Issueと割と自動で直してくれます。

    「AdMobの対応の情報で正しいものがどれなのか?」ということが一番迷いました。色々な方が問題に遭っているようで自分が遭遇したものを順番につぶしていくしかない感じです。AdMobのUnity向けのプラグインを使っているのですが、Google Mobile Ads SDKをiOSでは追加する必要があります。Unityのプロジェクトに入れたほうが楽ですが、Xcode上で後から追加しても良いようです。このSDKをWindowsでダウンロードしたものを使うとなぜか駄目でMacでこのSDKをダウンロードしないとうまくいきませんでした。
    まあそういうものらしいですが、納得いかないですね。

    トランプ・アメリカンページワンをiOSに移植がほぼ完了したので、予約を受け付けることにしました。 
    他のAndroidアプリも順番に移植を進めていきます。 一つ完成させられれば、あとはそれに倣っていくだけです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    アプリをAndroid/iOSで出そうとすると、Google PlayとApp Storeに置くことになります。このアプリへのリンクをSNSなどでシェアするというのは、宣伝にもなるのでよく行われています。

    アプリへのURLは以下のように
    https://play.google.com/store/apps/details?id=com.FreelyApps.Game.Trump.AmericanPageOne」 
    とても長くなります。 
    これをTwitterなどに載せてしまうと、かなり文字数を圧迫してしまいます。リンクをそのまま含めるとTwitterではその先のページの情報を載せてくれるようで利点もあります。しかしながら、文字数を使いすぎて本文が足りなくなってしまうし、 Android/iOSの両方のリンクを載せるのは相当厳しいです。(ほぼリンクだけになってしまうので。)

    Google URL ShortenerのようにURLを短くするサービスを使うと、なんとか載せることができるようになります。短くしたURLをAndroid/iOSの2つ分載せるというのが多いと思います。この方法は簡単ですが、あまりよくないと思います。リンク先の情報がわかりにくいこととユーザーがどちらかのリンクを選ぶ必要があるからです。

    AppStoreかGooglePlayに振り分けてリダイレクトする方法」 Sawalogより
    で紹介されているユーザーをあるHTMLファイルへ行かせ、そこのJavaScriptでリダイレクトさせるというのが良い方法だと思います。この方法であれば、リンクは一つになりユーザーが意識しなくても自分にあったページへと行くことができます。このHTMLファイルを置くところは公開されたサーバー上ならどこでも良いでしょうけど、その場所を用意することと、HTMLファイルを編集しなくてはならないことが少し欠点でしょうか。

    私の場合はリダイレクト用のHTMLファイルをこのブログのファイル置き場に置き、そのURLを短縮して使おうと考えています。ファイルを置き換えてもURLが変わらなければ問題ないので、途中でリダイレクト先を変えることも問題なさそうです。

    このURLはGoogle PlayとApp Storeへのリンクとして使う予定です。(この記事を書いているときはGoogle Playへしか行きませんが)

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity5.4以前ではAnalyticsのメソッドには以下の
    public static AnalyticsResult CustomEvent(string customEventName, IDictionary<string, object> eventData);
    という形式でカスタムイベントが発生したことを伝えていました。
    この形式しかなかったので、カスタムイベントに付随するパラメータがない場合は、eventDataにnullを渡し
    Analytics.CustomEvent("something" , null);
    というようにしていました。
    見た目からしてもnullを置くのは変な感じですが、これでうまくいっていたのです。 

    Unity5.4.0f3にしたところ、パラメータなしのカスタムイベントでエラーが発生しました。(NullReferenceExceptionが発生するので、とても危険です。Unityはこのエラーが発生しても落ちないのですが、ふつうは落ちます。なぜか処理が一部飛ばされて動き続けるようです。)
    ce_nre


    5.4では、Analyticsクラスに以下の2つのカスタムイベント用のメソッドが追加されています。
    public static AnalyticsResult CustomEvent(string customEventName); 
    public static AnalyticsResult CustomEvent(string customEventName, Vector3 position); 
    パラメータなしのカスタムイベントは上の引数が1つだけのものを呼び出すとエラーがなくなりました。おそらくこの対応で問題ないと思います。
    下の位置を渡すものはヒートマップに使うと思われます。 

    このページのトップヘ