タグ

ブックマーク / qiita.com/KeithYokoma (19)

  • まだ CircleCI で消耗してるの? - Qiita

    概要 もう随分と前に TravisCI から CircleCI へ乗り換えたのですが、いかんせん、便利な CircleCI をもってしても Androidプロジェクトのビルド時間は長くなり続け、ついに 1 回のビルドに 20 分を費やすほどにまで成長してしまいました。いくつか無駄を省いたり、キャッシュをしてみたりと言った策を講じたものの、目立った改善が得られませんでした。そこで CircleCI を脱却してみることにしました。現在、CircleCI を脱却し Wercker を利用することで 1 回のビルドが 5 分ほどで終わるようになりました。この記事には、何がどのようにして短時間で済むようになったかを書き記してあります。 問題の根源 そもそも CircleCI で時間がかかっている部分はどこかというところから見ていきます。現在のプロジェクトで使用している分には、以下に上げる部分でか

    まだ CircleCI で消耗してるの? - Qiita
  • うまくメソッド名を付けるための参考情報 - Qiita

    クラス名編をつくりました あるメソッドを定義しようとするとき、そのメソッドを使う人達が名前からどんなことをするか理解できるようにするには、メソッドの内容に応じて適切な情報量の命名が求められます。 この記事では、メソッド名に用いることでどのような情報が提供できるかを見ていきたいと思います。 真偽値を返すメソッド 場所 単語 意味 例

    うまくメソッド名を付けるための参考情報 - Qiita
  • 夜も安心、目に優しい UI を作ろう - Qiita

    TL;DR 夜などの暗闇でスマートフォンを使うときには、目に優しい色使いをしましょう これ is 何 夜な夜なスマートフォンの画面を注視していると、画面の明るさに目が馴染んでしまって、くらいところで周りが見えなくなった体験は無いでしょうか。あるいは、夜車を運転している時にスマートフォンの画面をつけていると、その光がチラチラと視界に入ってきて陶しく感じることはないでしょうか。 この記事では、画面の輝度を変更する方法ではない、暗所でもユーザの目に負担とならないような UI の作り方を見ていきます。 目に優しい色 色の属性 色にも明るさがあります。 HSVモデルやHSL色空間、HSB色空間といったモデルで表される色のプロパティには、V(Value)やL(Lightness)、B(Brightness)といった、明度や輝度と呼ばれる明るさを示すスケールがあります。この値が高いほど色は明るく見え、

    夜も安心、目に優しい UI を作ろう - Qiita
  • その Dialog は本当に必要ですか? - Qiita

    ダイアログは、ユーザとの対話の中でも特に「確認」や「注意」を促すために用いられる UI コンポーネントの一つです。二択あるいは三択の項目を配置して、YES/NO や OK/Cancel などのインタラクションを用意することで、ユーザとの対話をすることが出来ます。あるいは、単に現在の状態を表示(読込中など)し、その他の各種操作をブロックすることで、待つ必要が有ることを明示することも出来ます。 一方で、ダイアログはその表示が画面の前面に大きく表示され、時にダイアログ以外へのインタラクションを禁じる場合もあることから、使いどころを間違うと非常に陶しく見えるものでもあります。また、ダイアログのキャンセル操作が出来ない場合において、いつまでもダイアログが出続けてしまうとユーザの負担は大きくなります。 この記事では、ダイアログを使用している場面において、その他の表現方法や実装の工夫を使うことができる

    その Dialog は本当に必要ですか? - Qiita
  • Java と Android の正規表現の動作の違い - Qiita

    この記事は、先日の potatotips #22 では説明しきれなかった部分を補足するものです。potatotips #22 でのスライドは Regular Expression in Android And Java です。 おさらい Pattern | Android Developers Java の正規表現 Patternクラスを用いて、正規表現文字列をコンパイルしてマッチする処理を描くことになります。Stringクラスには一部便利なメソッドがあり、正規表現文字列を渡してマッチするものに処理を施す事ができるようになっていますが、あまり複雑なことはできないため、Stringクラスで提供されている以上のことをする場合はPatternクラスを用います。 Java の正規表現は Perl5 のシンタックスのサブセットですが、Perl のように正規表現リテラルは存在せず、文字列を用いて正規表

    Java と Android の正規表現の動作の違い - Qiita
  • なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita

    AndroidiPhone との比較は多くの点で議論されており、どちらがより良いかは、Android の画像の質は iPhone とくらべてずっと劣るという点を除けば、未だ結論が出ていません。Facebook、Twitter、Instagram 等どれを使っていても、写真をとって、フィルタをかけて、ソーシャルネットワーク上に公開すると、いつも Android から投稿される写真は画質が劣化しています。しかし何故でしょう? 私達は昨年の間調査をし、そしてついに、Google が犯したほんのちょっとしたミスが原因であることを突き止めました。それは当にちょっとしたミスでしたが、その影響はすべての画像を扱うアプリケーションに波及するほど大きく、現在に亘っても影響が続いています。 問題は、libjpegです。 libjpegといえば、数多くのオープンソースプロダクトでも使用されており、And

    なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita
  • 幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita

    クライアントアプリにとって、マルチスレッドプログラミングは避けては通れない重要な概念です。しかし、気をつけないとハマるポイントも多く、初めてクライアントアプリを学ぶ人たちからすると、複雑で難解な取っつきづらいものでもあります。ここでは、スレッドの基から、効率的な使い方、また複雑化しやすいポイントをシンプルに実装するためのノウハウを見ていきます。 TL;DR スレッドの取り扱い方を知る Threadをそのまま使わず、AsyncTaskやIntentService、時にThreadPoolExecutorを使ってスレッドの使い方を効率化する。 複雑な処理フローをシンプルに扱うためのフレームワークを導入する PromiseやRxAndroidなどで、複雑化しやすいポイントを整理する。 スレッドの基 スレッドといえば、ThreadクラスやRunnableクラスがベースにあります。以下のようにす

    幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita
  • Web な人もアプリな人も、これから新しく Android アプリを作るなら抑えておきたいポイント3選 - Qiita

    Web な人もアプリな人も、これから新しく Android アプリを作るなら抑えておきたいポイント3選Androidandroid開発 概要 Lollipop が発表されてから時間も立ち、Android Auto、Android Wear、Android TV と、多様性を見せ始めた Android ですが、今後とも多種多様なデバイス向けに様々なアプリを作っていく流れがあるなか、新しくアプリを作るなら抑えておきたい要所をまとめました。 TL;DR 抑えるところは 3 つ。 画面とライフサイクル 非同期処理 互換性 かなり端的にいうと、Activity や Service などのライフサイクルとうまく付き合いながら、コードの構成のレイヤー化を行い、非同期処理を簡潔に記述できる準備をしておくことと、非同期処理とあわせてマルチスレッドプログラミングの基を抑えておくこと、互換性への準備を最初にし

    Web な人もアプリな人も、これから新しく Android アプリを作るなら抑えておきたいポイント3選 - Qiita
  • Multi-dex Support を使おう - Qiita

    Multi-dex とは 一個の dex に含められるメソッドの総数が 65,535 なのは有名な話ですが、Google Play Services や Guava などの大きなライブラリを使うと、わりとすぐにその数字に達してしまいます。 Guava の場合、ドメインに応じて dependency をつまみいできるので、不要なものは dependencies に記述しなければ良いだけで済みます。 しかし、Google Play Services は All in one なライブラリのため、つまみいができず、ProGuard で使わないものを無理やり削ぎ落とすなどの工夫が必要です。 それでも、ライブラリへの依存が増えれば、その分だけメソッドの総数も増えていきます。どうしても 65,535 を超える場合、Multi-dex Support を使うことで、この問題に対応することができます。

    Multi-dex Support を使おう - Qiita
  • Fragment は本当に多様なデバイスへ対応する唯一の方法なのか - Qiita

    参考:Advocating Against Android Fragments Fragment の基 Fragment といえば、Honeycomb から導入された、多様なデバイスへ対応するための仕組みで、Activity のライフサイクルに合わせて動作するモジュールのようなものです。 Fragment として細かく分けたモジュールを組み合わせることで、多様なデバイスへ対応しやすくする、という寸法です。 ライフサイクル Activity に付随して動くので、Fragment も勿論ライフサイクルを持つのですが、Activity よりもはるかに複雑なものとなっています。 Square のエンジニアブログに曰く、WTFs/min = 2^fragment countであると。 トランザクションとインスタンスの管理 Fragment Transactions によって、Fragment の操

    Fragment は本当に多様なデバイスへ対応する唯一の方法なのか - Qiita
  • コールバックと上手に付き合う - Qiita

    コールバック、よく使いますよね。 非同期処理の結果を受け取るには、必ずと言っていいほど付き合うことになるコールバックですが、UI のようにライフサイクルを持つオブジェクトと共存するには、考慮すべきことがいくつかあります。 ここでは、おおまかに、上手にコールバックと付き合う方法を見ていきます。 基となるポイント なんといってもまず抑えなければいけないポイントは、ライフサイクルを持つオブジェクトとの共存です。世に出回っている様々なコールバック管理のためのライブラリは、このライフサイクルを持つオブジェクトとの共存をいかに楽に、あるいは直感的にするか、ということをもとに作られています。 ライフサイクルとはつまり、オブジェクトが生成されてから消滅するまでの一連の流れのことです。 newしたりallocしたりしたタイミングでオブジェクトが生成され、GC に回収されたりdeallocしたりするタイミン

    コールバックと上手に付き合う - Qiita
  • 声に出して読みたい Android のライブラリ - その1 - Qiita

    声に出して読みたいObjective-Cのライブラリ8種(2014.7) に触発されて書いてみます。 今回は Square 社製ライブラリを見ていきます。 Picasso 安心と信頼の Square 社製のライブラリです。画像のローディングとキャッシュについて面倒を見てくれますが、画像の加工についても扱っています。 Context、多くの場合Activityのライフサイクルに合わせて画像の読み込みを管理したり、AdapterViewの中にあっては、Viewのリサイクルをハンドリングして、画像のロードをキャンセルしたりもしてくれます。 Transformationインタフェースを実装し、そのロジックを渡すことで、画像の加工もできます。 処理の始まりはPicassoクラスから。Picasso#with(Context)で自動的にオブジェクトの初期化がはじまり(まだの場合)、続けてどこから画像を

    声に出して読みたい Android のライブラリ - その1 - Qiita
  • 非同期処理でよく使う IntentService と AsyncTask は何が違って何が同じなのか - Qiita

    非同期処理と言えば、IntentServiceとAsyncTaskのいずれかは使ったことがあると思います。UI スレッドとは別のところで非同期に何かする、という点ではどちらも同じことをこなせるのですが、実際問題として何が違って何が同じなのかというところを踏み込んで見て行きたいと思います。 並行性とパフォーマンス IntentServiceは内部にHandlerThreadを持っていて、このHandlerThreadのなかで非同期処理を実行します。HandlerThreadは、内部に持っているHandlerにメッセージが渡ってきた時、それを順に処理するようできているので、メッセージを同時に複数送ると、ジョブキューのようにシリアルな動作で、メッセージを1つずつ捌いていきます。 Handlerがもっているメッセージキューにメッセージがなくなると、IntentServiceは自らのライフサイクルを

    非同期処理でよく使う IntentService と AsyncTask は何が違って何が同じなのか - Qiita
  • 世の中にはどんなライブラリがあって、どんなふうに動いているのかをサクッと見たい人に送る素敵アプリ - Qiita

    GitHubGoogle Group を眺めていると、実にたくさんのライブラリプロジェクトがあります。 UI に関連するものもあれば、設計を整理するのを助けてくれるものもあり、様々です。 特に、UI に関連するものは、実際に動かすとどうなるのかが気になるところ。しかし、必ずしも README にスクリーンショットがあるとは限らないのが現状です。また、スクリーンショットがあっても、操作感がわからなかったりすることもあります。 そんなあなたへ、いろいろなライブラリのサンプルを寄せ集め、実際に動く様子を手に持って触れるアプリがありますのでご紹介。 for Android: Libraries for Developers for iOS: Libraries for Developers 片っ端からライブラリを寄せ集め、デモも組み込まれているすぐれもの。ライブラリの Author やライセ

    世の中にはどんなライブラリがあって、どんなふうに動いているのかをサクッと見たい人に送る素敵アプリ - Qiita
  • これから Android 開発をするなら抑えておきたい環境構築AtoZ - Qiita

    AndroidStudio や Gradle の登場で、Android の開発を始める時の環境構築の面での進化が止まらない近頃の Android 開発。 特に、AndroidStudio は継続的にバージョンアップが配信され、正式版の発表も秒読みなのではないかと言われる程には、開発環境が以前よりも格段に良くなってきています。 今回は、チームで開発する上でも、個人で開発する上でも、プロジェクトを最初に立ち上げる時に抑えておきたい、環境構築のポイントを紹介したいと思います。 Gradle に入れておきたいプラグイン達 1. SDK Manager のセットアップを自動化するプラグイン Android SDK Manager は、無くてはならないものですが、それをセットアップするのは地道な作業が続いて意外と面倒くさかったりします。 どのバージョンまでをサポートするかによって、入れる必要があったり

    これから Android 開発をするなら抑えておきたい環境構築AtoZ - Qiita
  • Android のテストで設計をイイカンジにしよう - Qiita

    Android フレームワークは、あまり強力とはいえないものの、ある程度のテストフレームワークを内包しています。 ベースが JUnit3 なので、記法が古かったりすることもありますが、とりあえず JUnit3 の作法を身に付ければある程度のテストは書くことが出来ます。 Android のテストケースフレームワーク Android がもつ各種のコンポーネントをテストするためのフレームワークが有ります。 いろいろな種類がありますが、おそらく最も頻繁に使うのはAndroidTestCaseでしょう。 AndroidTestCase Android でユニットテストをするなら、ほぼ間違いなく使うであろうクラスです。 そのようなテストケースでは、すべてこのクラスを基底に作っていきます。 もう少し具体化して言うと、Contextに依存するすべてのテストはこのテストクラスを使うことで、イイカンジにテスト

    Android のテストで設計をイイカンジにしよう - Qiita
  • 超ラクチンに端末の画像を複数選択するためのライブラリを作った話 - Qiita

    Android の端末に保存されている画像を、アルバム(ディレクトリ)を跨って複数枚選択するためのライブラリを作りました。 Intent の Action による画像選択の問題 Intent.ACTION_PICK や Intent.ACTION_GET_CONTENT を用いれば、ギャラリーアプリや KitKat のファイルセレクタが立ち上がって、使いたい画像を選択することができます。 ただし、この方法では、画像を 1 枚しか選択できないため、複数枚を同時に取り扱おうとすると、ユーザに何度も選択画面との往来をさせてしまいます。 一方で、Intent.ACTION_SEND_MULTIPLE という Action も宣言されており、ギャラリーアプリなどで複数選択して共有ボタンを押すと、この Action で Intent が発火され、選択した複数の画像 Uri が取得できます。 しかし、ギ

    超ラクチンに端末の画像を複数選択するためのライブラリを作った話 - Qiita
  • イマドキなイカした Android のオープンソースライブラリ集 - Qiita

    今から Android やるならチェックしておきたい、厳選イカしたオープンソースライブラリ一覧。 support-v4 や support-v7-appcompat などは公式のものなので割愛。 開発環境 Android SDK Android SDK Installer 公式からダウンロードしてポチポチとチェックを入れてはダウンロードして…が面倒くさいならコレ。 シェルからコマンド一発でダウンロード出来るので、CI で使うのにも便利。 ADB Idea AndroidStudio および IntelliJ 用のプラグインで、IDE から ADB コマンドを簡単に利用できるようにするためのもの。メニューから選択してコマンドを実行できるようにしてくれる。 コード最適化 DI コンテナ Dagger square 社の Android および Java 向け DI コンテナ。 javax.in

    イマドキなイカした Android のオープンソースライブラリ集 - Qiita
  • やさしい設計 〜 Android 編 - Qiita

    アプリを作っていてありがちなこと Android には、画面を構成するための Activity というコンポーネントがあり、概ね MVC フレームワークの Controller に相当する機能を持っています。 MVC といえば、肥大化する Controller というのがよくある問題として挙げられますが、Activity も例に漏れず、往々にして肥大化しがちです。 また、Model も、その責務を詰め込んでいくと肥大化しやすいレイヤと言えます。 この投稿では、Controller や Model の肥大化を極力防ぐためのレイヤわけを、Android アプリ向けに書いていきます。 Activity を綺麗に保つ Activity は、Controller として、様々な UI から受けるイベントを受けて、適切にハンドリングする役割を持っています。 OptionsMenu や ContextM

    やさしい設計 〜 Android 編 - Qiita
  • 1