Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

Androidアプリ 「インコアンインストーラー」をリリースしました

個人でAndroidアプリをリリースするのはすごく久しぶりです。

先日Androidアプリ 「インコアンインストーラー」をリリースしました。

インコアンインストーラー - Google Play の Android アプリ

ただのアンインストーラーアプリじゃありませんYO!
インコなんです。
f:id:sakura_bird1:20141111175456p:plainf:id:sakura_bird1:20141111175514p:plain

画像じゃ伝わりにくいんですが、さり気なくインコが仕込まれています。


設定画面から「インコを鳴かせる」機能をONにすると、かわいいいんこの声で鳴くんですよ(*´艸`*)

f:id:sakura_bird1:20141111175938p:plain

ソートや

f:id:sakura_bird1:20141111180056p:plain

お気に入り機能や

f:id:sakura_bird1:20141111180125p:plain

アンインストール履歴機能や

f:id:sakura_bird1:20141111180239p:plain

文字サイズや画面のテーマカラーも変えられるんですよ。
カラーはコントラストが強すぎないようにして、目の疲れを考慮しています。

f:id:sakura_bird1:20141111180608p:plain


インコが大好きで開発の都合上よくアンインストーラーアプリを使用する私得アプリですけど
なかなか使いごごちが良いので、よろしければダウンロードして下さいね。

インコアンインストーラー - Google Play の Android アプリ

f:id:sakura_bird1:20141111181249p:plain



開発をしていく上では、気になっていたけどまだ手を出せていなかったAPIやライブラリを使用することができて、とても勉強になりました。

DBのORマッパーはgreenDAOを使いました。

greenDAO – Android ORM for SQLite | greenDAO is a light & fast ORM solution that maps objects to SQLite databases.

ActiveAndroidとは違って、DAOオブジェクトのソースを生成してくれる感じです。
一旦導入してしまえば後は楽なのですが、導入が大変でした。
Android Studioに導入しましたが、まだ不慣れなこともありなかなかうまく行かなくて丸一日は余裕でかかったような。

UIは最近Googleがプッシュしているマテリアルデザインを実装してみんとして、

AppCompat v21 を導入してみました。

Introduction - Material design - Google design guidelines


それにより、
android.app.ActionBarActivity→android.support.v7.app.ActionBarActivity
android.widget.SearchView→ android.support.v7.widget.SearchView
に変更しないと上手く行かなかったり、地味に悩んだりしました。

トップのタイトルバーはActionBarに代えてToolbarを使っています。
ToolBarの中にView要素を配置するので、ViewGroupのようなカスタマイズしやすさがあります。
インコアンインストーラーでは、Navigation Drawer+ToolBarを使っていますので、以下の様なxmlの定義になりました。
SearchViewを直接入れ子にしているのがわかると思います。

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">
    <!-- The main content view -->
    <LinearLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".TopActivity">

        <!-- Toolbar instead of ActionBar -->
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize">

            <android.support.v7.widget.SearchView
                android:id="@+id/action_search"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right" />
        </android.support.v7.widget.Toolbar>

    </LinearLayout>

    <!-- The navigation drawer -->
    <ExpandableListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/nav_background"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:groupIndicator="@android:color/transparent" />
</android.support.v4.widget.DrawerLayout>

それから、周回遅れでSupport Annotationsを使いました。


Support Annotations - Android Tools Project Site

そして、今回はスルーパスという広告システムを使いました。


スルーパス | 中間マージンゼロのSSP

中間マージンゼロで複数広告会社の広告を表示してくれるものです。
画像代やAdobe代や本代やガジェット代など見えない開発費用がかかっているので少しでも足しにならないかしら、と。難しいかしら。


他にも英訳がうまく出来ず泣きながらローカライズ(というのは違うか???)したり色々ありましたが、
出来上がってみると結構満足です。またインコやにゃんこなどの可愛いアプリを作りたいと思います。