Qiita
Android

Attiq: Qiita.com + Material Design - Qiitaの非公式Androidクライアントを出しました

More than 3 years have passed since last update.


TL,DR

勉強のため、ライブラリを試すために、Attiqを作りました。

ソースコードについて:多少な認証キーを整理してから公開する予定。

Play store URL: https://play.google.com/store/apps/details?id=im.ene.lab.attiq

Issue tracker: https://github.com/eneim/Attiq-app

Realtime feedback: https://gitter.im/eneim/Attiq-app

完全Ads-free、課金なしで提供します(本来、Pro版など考えています)


Attiqを作りました


スクリーンショット

Qiita API v1、v2 + web リソースを含め、かつAndroid向けMaterial化されたQiitaの非公式Androidクライアントです


Permissonの注意点

バカに利用しないPermissonを外さなかった。1.0.1で修正します


主な特徴

!以下、(BETA)があるものは、現在試しの状態で、多少な不具合がある可能性です


  • Material Design、テーマ 「DARK(BETA)」、「LIGHT」: デフォルトのAppCompat、AppCompat.Lightを元にして、テーマを拡張しました

  • サポートAndroidバージョン: minSdkVersion 21 あるいは、Android 5.0以降となります。Android 4の皆さん、ごめんなさい。時間があれば是非サポートを検討します

  • ログインあり・なしでもオッケー


    • Qiita API v2を使用したから、Oauth2でログインして、さらに便利に利用できます

    • ログインしないままでも新着記事一覧を閲覧できます

    • もちろんAPIのレートを増やすために、ログインでのご利用をオススメです



  • 記事一覧、閲覧歴史、(認証済みだけの)フィード(Qiita.comを開いた直後のページ)、記事詳細、ユーザー詳細ページなど


  • 記事のコメント一覧、コメント作成・編集・削除、しかもMarkdownで(認証が必要)


  • フォロー・アンフォローする(認証が必要)


  • シェアする


  • 数式をレンダリングする:MathJax(BETA)、設定ページにてON/OFFすることができます


  • App indexingを試しています。経験ないので、動かない可能性があります。


  • 記事の新規投稿がまだ実装していないが、Requestを聞きますので、ぜひ声を出してください


  • その他の細かい機能


  • 内部ブラウザで閲覧機能が、忘れました〜次のアップデートで追加します



利用したオープンソースライブラリやプロジェクト

アプリ内にもありますが、一応列系します


  • Android Support/Design系(ver 23.1.1)

  • Square/Jake Wharton 系: OkHttp3、Retrofit2 (beta4)、Picasso、ButterKnife、...

  • Google製系: Gson、Player services

  • Fabric/Crashlytics

  • Realm、jsoup

  • UI系、Markdown系

上記のライブラリ、知らない人がいるかもしれないので、詳細を述べます(build.gradleの一部)


build.gradle

    ext {

support_libraries_version = '23.1.1'
okhttp3_version = "3.1.1"
retrofit2_version = "2.0.0-beta4"
service_version = "8.4.0"
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')

compile "com.google.android.gms:play-services-appindexing:${service_version}"

compile "com.android.support:support-v4:${support_libraries_version}"
compile "com.android.support:appcompat-v7:${support_libraries_version}"
compile "com.android.support:design:${support_libraries_version}"
compile "com.android.support:recyclerview-v7:${support_libraries_version}"

compile "com.squareup.retrofit2:retrofit:${retrofit2_version}"
compile "com.squareup.okhttp3:okhttp:${okhttp3_version}"
compile "com.squareup.retrofit2:converter-gson:${retrofit2_version}"
compile "com.jakewharton:butterknife:7.0.1"

compile 'com.squareup.picasso:picasso:2.6.0-SNAPSHOT'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.1'

compile('com.github.ozodrukh:CircularReveal:1.3.1@aar') {
transitive = true;
}

compile 'com.sothree.slidinguppanel:library:3.2.1'
compile 'com.wefika:flowlayout:0.4.1'
compile 'com.google.code.gson:gson:2.5'
compile 'org.jsoup:jsoup:1.8.3'

compile 'io.github.gitbucket:markedj:1.0.6'
compile 'org.ocpsoft.prettytime:prettytime:4.0.1.Final'
compile "de.greenrobot:eventbus:2.4.0"
compile 'com.jakewharton.threetenabp:threetenabp:1.0.3'

compile "io.realm:realm-android:0.87.4"

compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}

compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.2@aar') {
transitive = true;
}
}



  • その他、参考になったオープンソースプロジェクト:Qiitaniumplaid


Qiita APIの利用


  • API v1、API v2だけでなく、http://qiita.com/api/publicまで利用させていただきます。そして、ユーザー詳細で、HTMLをパーズし情報を収得することも行いました(Contribute数など)

  • Qiita APIへの要望(ogaclejapanさんの記事を引き続き)


    • データベースへの問い合わせ数が増やすかもしれないが、現在、APIから収得できる情報が少ないので、もっと入れて欲しい

    • フィールドの値や構造を一致にして欲しい(例えば、記事のタグ)

    • ストック数、コメント数、contribute数など、v2に入れて欲しい

    • TOS、Privacy policyに対して



http://qiita.com/api/publicの使用が、Qiita.comのPrivacy policyに違反する可能性があると意識します。なので、Google Play Storeでの問い合わせをする前に、直接相談してください〜


Issue tracker、Feature requestやFeedbackなど

Issue tracker、feature requestをここに:https://github.com/eneim/Attiq-app

Realtime feedbackをサポートします、Gitterで: https://gitter.im/eneim/Attiq-app

では、Attiqのご利用、お待ちしております。よろしくお願いします。