タグ

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

  • JobQueue をクライアントサイドで実現する - Qiita

    ネットワークを用いたサーバサイドとのやりとりをする必要のあるアプリケーションでは特に、まとまったリクエストをバックグラウンドで捌き続けてくれる、JobQueue の仕組みが欲しくなることが有ります。 ネットワーク I/O を伴わなくても、様々な処理のまとまり(ジョブ)を非同期に逐次実行したり、電源が切れても、再起動した時にジョブの続きを勝手に処理してくれたりするような、永続化の仕組みと組み合わせられた JobQueue はとても便利です。 これによって、長時間かけて実行される非同期処理が簡単に取り扱えるようになります。 Android、iOS ともに、バックグラウンドで逐次実行する簡易な仕組みは標準フレームワークでも用意されています(IntentServiceとかNSOperationとNSOperationQueueとか)が、オンメモリで管理されるので、電源が切れたりすると無かったことに

    JobQueue をクライアントサイドで実現する - Qiita
    peketamin
    peketamin 2017/05/31
  • まだ CircleCI で消耗してるの? - Qiita

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

    まだ CircleCI で消耗してるの? - Qiita
    peketamin
    peketamin 2016/03/18
  • その Dialog は本当に必要ですか? - Qiita

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

    その Dialog は本当に必要ですか? - Qiita
    peketamin
    peketamin 2015/11/11
  • うまくメソッド名を付けるための参考情報 - Qiita

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

    うまくメソッド名を付けるための参考情報 - Qiita
    peketamin
    peketamin 2015/09/02
  • なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita

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

    なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita
    peketamin
    peketamin 2015/06/30
  • RemoteViews から様々な情報を読み取る - Qiita

    RemoteViews の内部構造 AppWidget や Notification のカスタム View に用いられる RemoteViews は、実際のところ View そのものは内包しておらず、View に関する情報(レイアウトのリソース ID やホストアプリケーションの情報など)と、View の操作を説明する情報を保持しています。 たとえば、RemoteViews を使って TextView に文字列をセットする場合、内部では、「setTextを指定された引数で呼び出す」という情報が RemoteViews の中に記録されます。この操作に関する情報はリスト形式ですべて RemoteViews の中に記録されており、RemoteViews#apply()を呼び出すことでそれらが実行され、View が展開されるという仕組みになっています。 RemoteViews でのイベントハンドリン

    RemoteViews から様々な情報を読み取る - Qiita
    peketamin
    peketamin 2015/05/26
  • チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita

    この投稿は DroidKaigi で話そうと思ったけど採択されなかった RejectedKaigi な内容です。 プログラムは、書けば書くほど複雑になります。行数が増え、分岐や繰り返しが増え、メソッドが増え、クラスが増え、パッケージが増え、管理するものは日に日に増えていきます。これらのものを使う側からすると、使うものが増えるということは、それだけ覚えることが増えることになります。勿論、IDE やエディタプラグインによって、そのような労力が極力減らされることもありますが、覚えることが少ないに越したことはありません。 この記事では、IDE やエディタプラグインはひとまず脇に置き、チームでコミュニケーションを取りながらコードを書くという観点で、従来のプログラミングのプラクティスを基に、開発時のミスを少なくし、チームで素早くアプリを作り続けていく方法論を深めていこうと思います。 Agenda 型を

    チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita
  • 幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita

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

    幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita
    peketamin
    peketamin 2015/03/24
  • 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
    peketamin
    peketamin 2015/01/22
  • 声に出して読みたい Android のライブラリ - その1 - Qiita

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

    声に出して読みたい Android のライブラリ - その1 - Qiita
    peketamin
    peketamin 2014/09/12
  • Android のテストで設計をイイカンジにしよう - Qiita

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

    Android のテストで設計をイイカンジにしよう - Qiita
    peketamin
    peketamin 2014/04/28
  • イマドキなイカした 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
    peketamin
    peketamin 2014/04/14
  • やさしい設計 〜 Android 編 - Qiita

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

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