タグ

2015年10月14日のブックマーク (9件)

  • 第10回 テストの最小単位は不安 | gihyo.jp

    ニコニコ動画:https://www.nicovideo.jp/watch/sm2316665 クロコさんからの質問 なるほど。連載第5回でも、「⁠写経をやってみた、リズムもわかってきた。でもいざ自分でやろうとすると、最初はどういうテスト書こうかとか、どういう単位でテストを書けばいいのかとかで詰まってしまう」という質問をいただきましたね。 私は実は、明確にこういう単位でテストを書くべしという決まりはないと思っています。 不安をテストで表現する では、私がどういうときに小さいテストを書いているかというと、私は「不安」を最小単位の基準としています。不安を手がかりにしてテストを書きます。 私たちプログラマの手を止めるものは何でしょうか。私は「不安」だと思っています。「⁠もしかしたら」という感情ですね。「⁠もしかしたら、自分の書いているコードは間違っているかもしれない」「⁠もしかしたら、ライブラリ

    第10回 テストの最小単位は不安 | gihyo.jp
    KinjouJ
    KinjouJ 2015/10/14
  • Android LollipopでButtonのTextが大文字(textAllCaps)なるの、仕様です - Qiita

    <style name="TextAppearance.Material.Button"> <item name="textSize">@dimen/text_size_button_material</item> <item name="fontFamily">@string/font_family_button_material</item> <item name="textAllCaps">true</item> <item name="textColor">?attr/textColorPrimary</item> </style>

    Android LollipopでButtonのTextが大文字(textAllCaps)なるの、仕様です - Qiita
  • Where is my Ruby method defined?

    Recently I noticed that the present? method was exhibiting weird behaviour on one of our models. source_location After the initial panic wears off, the sane thing to do in this situation is to find out what present? is actually doing. Fortunately, Ruby 1.9+ allows us to find exactly where a method is defined: source_location ! Chapter.new.method(:present?).source_location => [".../gems/activesuppo

    Where is my Ruby method defined?
    KinjouJ
    KinjouJ 2015/10/14
  • Twitterクライアントの内部DBをSQLiteからRealmに移行したときのノウハウまとめ - Qiita

    Twitterクライアントのようなそれなりに大規模なアプリの内部DBSQLiteからRealmに置き換えるといういわゆる「飛行中の航空機のエンジンを取り替える」系の修正をやってるので現実的で苦々しい知見ばかり貯まっていく — 竹内裕昭 (@takke) August 4, 2015 拙作のAndroidTwitterクライアントTwitPane の内部DBSQLiteからRealmに変更しました。 この移行作業にあたって色々とノウハウがあったので備忘録代わりにメモしておきます。 Realmの日語の情報はまだまだ不足していますので普及の一助になれば。 とはいえ、、開発中に自分がTwitterでつぶやいていたものから拾っていますので真偽不明のものが多いです。以下に書かれていることを鵜呑みにせず、必ずご自分で検証してから導入しましょう。 初めて Realm を使うという方はまず Real

    Twitterクライアントの内部DBをSQLiteからRealmに移行したときのノウハウまとめ - Qiita
  • appcompat 22でPreferenceActivityを実現する方法 - Qiita

    SupportLibary v23ではPreferenceFragmentCompatが追加されたのでそちらを使いましょう! ⇒[Android]SupportLibrary v23から追加されたPreferenceFragmentCompatを使ってみる - Qiita (2015/9追記) Android - appcompat 21+でPreferenceActivityを実現する方法 - Qiita の appcompat 22 版です。 結論から言います。 AppCompatPreferenceActivity.java を使え! ※使用例は ActionBarPreferences.java 以上です。 appcompat 22 で Material テーマが AppCompatDelegate により実現されるようになり、appcompat21 までの ActionBarAc

    appcompat 22でPreferenceActivityを実現する方法 - Qiita
  • [Android]SupportLibrary v23から追加されたPreferenceFragmentCompatを使ってみる - Qiita

    [Android]SupportLibrary v23から追加されたPreferenceFragmentCompatを使ってみるAndroidSupportLibraryPreferenceFragment SupportLibrary v23でPreferenceFragmentが追加された 最近のGoogleのSupportLibraryへの対応はとても親切で、今まで、API 11未満では使えなかったPreferenceFragmentがとうとう!SupportLibraryで対応されました! 今まではこんなもので代用していましたよね。お世話になりました。 https://github.com/Machinarius/PreferenceFragment-Compat と言っても今更API 11未満に対応する必要はほとんどないわけで、どちらかというと、バージョン依存の激しいSDKではな

    [Android]SupportLibrary v23から追加されたPreferenceFragmentCompatを使ってみる - Qiita
  • 次世代ビルドツールBazelを使ってAndroidアプリをビルドする - クックパッド開発者ブログ

    会員事業部所属エンジニアの山下(@tomorrowkey)です。 去年はモバイルファースト室でバリバリとAndroidアプリを書いていたのですが、今年に入ってサーバーサイドもやってみたいと思い、最近はRubyを書いている日々です。 Rubyはあまりやったことがなかったのですが、REPLがあってとても助かります。Java 9でREPLが使えるようになるらしいですが、Androidは縁遠い話ですね。 さて、今回は来年ビルドツールとして脚光を浴びそうなBazelをご紹介したいと思います。 Bazelとは何か Bazel http://bazel.io/ BazelはGoogleが社内で使用していたビルドツールをオープンソース版として開発をしているものです。2015年3月にAlpha版が公開されました。 Alpha版ではクライアントアプリケーションやiOSアプリのビルドなどがサポートされていて、最

    次世代ビルドツールBazelを使ってAndroidアプリをビルドする - クックパッド開発者ブログ
  • [linux]月末にcronを実行する

    月末にcronを実行したいと思いcrontabに設定を書こうとしたところ、月初のように単純には書けないことに気づきました。 月初だと以下のように「毎月1日に」と書けばいいのですが、 0 0 1 * * 実行したいコマンド月末は30日の場合もあるし2月はうるう年も考慮する必要があります。 調べてみたことろ、testコマンドとdateコマンドを組み合わせて「28日から31日の間で翌日が1日だったら実行する」という設定を書けばいいみたいですね。 0 0 28-31 * * /usr/bin/test $(date -d '+1 day' +%d) -eq 1 && 実行したいコマンド勉強になりました。 参考crontabの書き方 | server-memo.netLinux - testコマンドとcronを組み合わせ、月末にバッチを動かす - Qiita

    [linux]月末にcronを実行する
    KinjouJ
    KinjouJ 2015/10/14
  • Android 6.0のRuntime Permissionに対応する

    Android 6.0ではRuntime Permissionという概念が取り入れられました。 それまでのアプリでは動作に問題が出ることが有ります。 Runtime PermissionとはAndroidではカメラやネットワークなど一部の機能を使用するには、ManifestにPermissionを記載して、使用することを明示的に宣言しないと使えない機能があります。 これにより、ユーザーはそのアプリがどのような機能を使用しているかを把握することが出来ます。 PermissionはAndroid6.0未満では全てインストール前に確認するという方式が取られていました。 ユーザーがPermissionを許可しなかった場合アプリをインストール出来ません。 しかし、この方式はいくつかの問題を含んでいます。 多くのユーザーはインストール前にそのアプリがどのPermissionをどうやって使うのか把握しづ

    Android 6.0のRuntime Permissionに対応する