読者です 読者をやめる 読者になる 読者になる

アニマネ開発日誌

アニメアプリのアニマネの開発日誌です。

開発者目線で新はてブアプリをレビューしてみた

Objective-C Swift アプリ開発 UI

リニューアルされたはてなブックマークiOSアプリ。 フィードバックを募集しているようでしたので、軽く触った感じのレビューをしてみたいと思います。

新機能はあまり試していないのと、開発者目線のレビューです。

使用しているライブラリ

開発者向けのエントリなので、一発目からライブラリについてです。
アプリ本体は後半になります。

最近、他のアプリが使っているライブラリを見るのが好きなので、一通り書いてみます。

今回のエントリはこれが書きたかっただけだったりします。

AAMFeedback

アプリのフィードバックを頂くためのフォームを手軽に設置できるライブラリとして有名なやつですね。

アニマネでも同様のライブラリとして、CTFeedbackを使っています。

こちらの方がメンテナンスされていて、カスタマイズもしやすかったので、上記を採用しました。

Alamofire

Swift時代のHTTP通信の定番ライブラリ。
Swift版AFNetworkingとしてこちらも有名ですね。

はてブ全体がSwiftに移行したのかも気になるところです。

Crashlytics,Fabric

https://try.crashlytics.com/

少し前にTwitterに買収されたCrashlytics。 アプリのクラッシュ情報を集めるWebサービスSDKです。

現在のバージョンではFabricもついてきます。

こちらも有名ですね。

GoogleAnalytics

https://developers.google.com/analytics/devguides/collection/ios/v3/sdk-download?hl=ja

説明不要とは思いますが、Webのアクセス解析で有名なGoogleAnalyticsのアプリ版SDK

GoogleAppUtilities

https://developers.google.com/apps-script/guides/rest/quickstart/ios

軽く調べただけでは分からなかったのですが、Googleのアプリケーション全般を扱うライブラリっぽいです。

GoogleAuthUtilities

これも詳細が分からなかったけど、その名の通りGoogleの認証周りのライブラリと思われます。

GoogleNetworkingUtilities

これも詳細不明なGoogleのライブラリ。

ネットワーク周りと思うけど、よく分からなかった。

GoogleSignIn

その名の通りGoogleアカウントでサインインするためのライブラリみたいです。

GoogleSymbolUtilities

またもや不明なライブラリ。 Symbolということはビルド関係?

GoogleTagManager

Webサイトのトラッキングタグなどを一括管理するのに有名なGoogleTagManagerですが、iOS版もあるのは初耳でした。

どうやら設定値などを管理できるみたい。

アニマネでは自前で実装していたので、使い勝手がよさそうなら試してみたいと思います。

GoogleUtilities

まだまだ出てくる、詳細不明なGoogleのライブラリ。
ざっくりし過ぎていて、詳細不明です。

HMSegmentedControl

タブ部分で使われているライブラリです。

初めて知ったライブラリですが、なかなか使い勝手よさそうでした。

http://dev.classmethod.jp/smartphone/ios_oss_hmsegmentedcontrol/

アニマネでタブデザインを実装した時の候補には入っていなかったのですが、 ちょっと使ってみたくなりました。

ちなみにアニマネでタブデザインを導入する際に、ライブラリを比較した時のエントリは下記になります。

Mantle

JSONをオブジェクトにマッピングする時に便利なライブラリです。 こちらもわりと有名なライブラリと思います。

MBProgressHUD

ローディング時のインジケータ表示を行なうライブラリ。

SVProgressHUDと並んで有名なライブラリ。アニマネでも使用しています。

単純な処理ならSVProgressHUDの方が楽かと思います。 https://github.com/TransitApp/SVProgressHUD

MBProgressHUDはもう少しカスタマイズが効くので、重宝しています。

Result

一般的な名詞すぎて調べにくかったライブラリ。 リンク先があっているのか微妙なところです。

説明を見る限りはResultパターンを実装しているものっぽい。

SDWebImage

もはや説明な不要な画像表示用ライブラリ。

TTTAttributedLabel

こちらも有名なライブラリ。
テキストからリンクを抽出したり、書体や色を変更するなどの実装を助けるライブラリです。

twitter-text

Twitter純正のテキストライブラリ。 ツイート時のテキストに関する文字数のカウントなど、ツイートする際のテキストを扱うライブラリです。

UIDeviceIdentifier

iOSの端末名とかを返してくれるライブラリのようです。

VTAcknowledgementsViewController

cocoapodsでインストールしているライブラリの一覧を自動生成して、UITableViewControllerで表示できるライブラリ。

このエントリが書けるのはこのライブラリのおかげです。

WebKitPlus

WKWebView周りのサポートライブラリのようです。

外観

ここからはアプリのレビューです。
気になったところだけ書いてみます。

f:id:animane:20151120010536p:plain

マテリアルデザインを意識した感じで、個人的には見やすいと思います。 前バージョンのスクショは撮ってないけど、フォントは少し大きくなった気がします。

細かいけど、faviconが滲んでいるのが、若干気になったりはしました。

タブを導入したことで、横スワイプで他の画面へ移動しやすくなりましたが、
個人的にはカテゴリをタブにして欲しかったです。

ユーザー操作のデータを取った上での実装かとは思いますが、利用者が選択できるようになると嬉しいです。

フローティングアクションボタン

f:id:animane:20151120010645p:plain

マテリアルデザインっぽい印象を受けたのはフローティングアクションボタン(以下FAB)があることが大きいです。

狭い画面を有効的に使うためにはよいUIとは思いますが、やはり初見では押した時の機能が分からないので、 押すまでに若干心理的障壁があります。

スペースを優先してアイコンだけにするのか、テキストを併用して押した時の挙動をイメージしやすくするのかは、 UI/UXにおいての永遠のジレンマという気がします。

それと良いなと思ったところが一つあって、初めて押した時に内容を説明するヘルプがあったのはとても親切だと思いました。

f:id:animane:20151120010715p:plain

ただ、僕だけかも知れませんが、左上の閉じるボタンを押した時の反応が鈍かった気がします。

一旦アプリを削除して試したらそうでもなかったので、これは気のせいかも知れませんが。

あと、真似したいなと思ったのは、一番下までスクロールした時に2つあるFABが一つになって、 カテゴリ選択のボタンに変わるところです。

f:id:animane:20151120010833p:plain

最後までスクロールしたあとの導線に繋がりやすいし、アニメーションすることで注意を引いて目線が移るので、 その上にある広告にも目がいきやすいと思いました。

マイブックマーク

f:id:animane:20151120010915p:plain

自分のブックマークにFABから遷移してアクセスしやすくなったのは嬉しいです。
欲を言えば、ホッテントリと同様にタブをスワイプで移動できるようにして欲しかったです。

この辺はアップデートに期待というところでしょうか。

記事詳細

f:id:animane:20151120010942p:plain

ブコメでも書かれていますが、タグ付けについては扱いにくかったです。 キーボードの上からタグ付けができることに最初は気づかなかったのと、おすすめ以外のタグが入力しにくいのは改善をお願いしたいところです。

コメントの確認がツールバーに入ったことで、押しやすくなったのはいいと思います。

あと、ナビゲーションバーの右から前後の記事に移動できるのも嬉しいです。

あとで読む

長押しはアプリのUIでは分かりにくい使い方の一つと思っているのですが、 FABを押した時に機能の説明を行なうのはいいなあと思いました。

f:id:animane:20151120011009p:plain

僕が知る限り、一般ユーザーは目に見えないアクションにはほぼ気付かなくて、
長押しとかダブルタップ、UITableViewCellの横スワイプで編集メニューを表示するとかは、ほぼ使われないと感じていました。

その欠点を補うためにアプリ起動時にチュートリアルを入れるアプリが多いですが、 ユーザーによっては読んでいなかったりするので、FABを押した時にさらりと説明するのはいいアイデアと思います。

検索

f:id:animane:20151120011122p:plain

前バージョンでできていたのかは意識していなかったのですが、 マイブックマークも検索できるようになったのはいいと思います。
スクリーンショットは全てのブックマークで検索したものです。)

あと、ブックマーク数や期間で絞り込めるのも嬉しいです。

f:id:animane:20151120011201p:plain

ただ、タグ検索は個人的によく使う機能だったので、過去に検索したキーワードを登録する機能は引き継いで欲しかったです。

設定画面

f:id:animane:20151120011432p:plain

FABでマイブックマークを押してからじゃないと、設定画面に移動できないのは、少々分かりにくかったです。

とはいえ頻繁にアクセスはしないので、慣れれば問題なさそうです。

不具合報告・ご意見

f:id:animane:20151120011530p:plain

これはアニマネでも同じ問題を抱えているのですが、 報告の時にメールで送る必要があるのは心理的障壁が高いと思います。

アニマネはさしてユーザー数が多くないので、実装があと回しになっていましたが、 結構離脱している人が多いのではないかと予想しています。

書いてて思いましたが、アニマネでも一度計測してみたいと思います。

総評

機能が増えるとUIがごちゃごちゃしがちですが、上手く工夫して作られている印象を受けました。
(それでも一般ユーザーからは辛辣な批評がでそうですが。。。)

初見だと戸惑いは大きかったですが、慣れれば使えそうな感じがします。

ただ、RSSリーダーとかまでを含めるとなると、さすがにアプリを分けた方がいいかなという気はします。

あと、開発者としては謎のGoogleライブラリが気になるので、ぜひともブログ記事にして欲しいなと思います。

追記
中の人からブコメで謎のGoogleライブラリはGoogleSignInの依存モジュールと教えて頂きました。ありがとうございます。
https://cocoapods.org/?q=googlesignin これですっきりしました!