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の一部)
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;
}
}
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のご利用、お待ちしております。よろしくお願いします。