タグ

2016年12月22日のブックマーク (16件)

  • Butter Knife、今までありがとう。 Data Binding、これからよろしく。 - Qiita

    あるアプリのmaster branchに,Butter Knifeへの依存をなくすPull Requestをmergeした. いままでButter Knifeが担っていた仕事はすべてData Bindingが受け持つことになる.Data Bindingは公式はbeta releaseと言っているものの,限りなく1.0に近いRCなんじゃないかという感じがしたため実戦に投入している. 実行時に全力でReflectionするButter Knifeと違い,Data BindingはAnnotation Processingで事前に色々やってくれる方式というのも嬉しい(c.f. Butter KnifeもAnnotation Processingする方式に切り替えるっぽい? => Split the compiler and runtime into separate artifacts. by

    Butter Knife、今までありがとう。 Data Binding、これからよろしく。 - Qiita
  • Android Data Binding + MVVMパターンのサンプルを書いてみた - Qiita

    notifyPropertyChanged とか、どこかで見たことのある機能が満載の Android Data Binding ですが、登場以来あまり追えてなかったのでやっとサンプルをつくってみました。 といっても RxJava + MVVM パターンで作るストップウォッチアプリ - Qiita で作ったストップウォッチアプリを Data Binding 化しただけです。 前回 との違いを図に示します。 View-ViewModel で全面的に使用していた rx.Observable<T> の代わりに、ObservableField<T> を使用。 View側で「オレオレDataBinding」を実装していた箇所を、Android の Data Binding に置き換え。つまりバインディングの定義はレイアウトxmlへ記述。 Model は相変わらず rx.Observable<T> のま

    Android Data Binding + MVVMパターンのサンプルを書いてみた - Qiita
  • AndroidのfindViewByIdでよくやるキャストとNullチェックをスッキリなコードにしてみた - Qiita

    この記事はJava言語をつかったAndroidアプリの開発に関する記事です。 もうすでにDataBindingやButter Knifeでスッキリしている方は不要な話かもしれません。 findViewById周りでいろいろと面倒ですよね。 returnがNullableなのでLint様の指摘対応したり、キャスト書いたり。 ※一時的にfindViewByIdが@Nullable指定されていたためこんな実装が必要でした。(2018/07/22追記) キャストの括弧の位置とか微妙にめんどいです。 そこでそこらへんをスッキリさせてみたいとおもいまーす。 Android3分クッキング。 Activityをスッキリ3分クッキング ↓Before /** この内容は古くなっています **/ @Override protected void onCreate(Bundle savedInstanceSta

    AndroidのfindViewByIdでよくやるキャストとNullチェックをスッキリなコードにしてみた - Qiita
  • Groovyを知らない人のためのbuild.gradle読み書き入門 - Qiita

    これは、 G* Advent Calendarの15日目の記事です。 昨日は @int128 さんの Gradle Slashプラグインをリリースしました #gadvent でした。 明日は @tyama さんです。 はじめに Gradle 便利ですよね。便利すぎて Ant や Maven には戻れないです。 なにが良いって、設定ファイルである build.gradle の記述量が、 Ant の build.xml や Maven の pom.xml と比べると非常に少なくて済むのが良いです。 build.gradle は、設定ファイルと言いつつも、その実体は Groovy で書かれたスクリプトファイルです。 Gradle は、 Groovy の持つメタプログラミング機能や省略記法などを利用して、設定を簡潔に記述できるようになっています。 これはメリットなのですが、一方で Groovy の

    Groovyを知らない人のためのbuild.gradle読み書き入門 - Qiita
  • RubyistがGroovyを始めてみた - Qiita

    これは G*(Groovy, Grails ..) Advent Calendar 2013 の18日目になります。 皆さんためになる記事を書かれている中、一人レベルが低くて申し訳ないのですが、カレンダーが空いていたので自分がGroovyをRubyと比較しながら勉強したまとめを書いてみます。 既に語り尽くされた内容のような気もしますがご容赦頂ければと思います。 Contents 基的なところ とりあえずHello World / メソッドの定義 / classの定義 / 変数の定義 / メソッドのカッコを省略する RubyのあれはGroovyだとなんなの times / each / map / flat_map / reduce / ||= / try / ArrayとHash / getter・setter / [ ]メソッド 外部ライブラリを使いたい 基的なところ では基的なと

    RubyistがGroovyを始めてみた - Qiita
  • Electron アプリをつくる時に便利なパッケージ - はやくプログラムになりたい

    この記事は Electron アドベントカレンダー2016 の13日目の記事です. 記事では,僕が Electron アプリをつくる上で便利だったり,ほしかったのでつくったりしたパッケージを7つほど紹介します. electron-about-window electron-dl electron-in-page-search electron-window-state menubar node-auto-launch electron-mocha electron-about-window electron-about-window は 'このアプリについて' ウィンドウを簡単にクロスプラットフォームにつくるためのパッケージです.下記のように関数を1つインポートして呼び出すだけで「このアプリについて」ウィンドウを生成することができます.(example) import openAbout

    Electron アプリをつくる時に便利なパッケージ - はやくプログラムになりたい
  • goa でデザイン・ファーストをシュッとする - Qiita

    はじめに この記事は Go(その3) Advent Calendar の19日目の記事です。 goa.design(以下 goa)の紹介をしたいと思います。 goa は APIデザインを書くと、そこから API サーバのモックとかクライアントとかドキュメントとか一通り生成してくれるマイクロサービス用のフレームワークのことです。 goa は APIデザインを書いて → レビュー → 実装 → デザイン見直し → ・・・ とサイクルを回して開発するプロセスをとれるようにできています。まずは API デザインを書くことで見通しよく進めよう、というのが goa を利用する際の設計方針です。 とてもすばらしいプロダクトなのですが、goa という名前のググラビリティが非常に悪く、なかなか広まらないなーと記事を書いたりしてました。最近、ちょっとずつですが goa のよさが広がってきていて(?) Adve

    goa でデザイン・ファーストをシュッとする - Qiita
  • まだAnko使ってないの!? - Qiita

    たった一行で済みます。うんうん。 ただ、新しい環境(記述時2.3)だと動きません。 僕はAndroidStudio2.0で動かしました。 凄く粗削りですがこちらにコードもおいてあります。かなり記事にする上で端折っているのでよかったら合わせて読んでください。 使おう <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:layout_width="match_parent" andr

    まだAnko使ってないの!? - Qiita
  • かんたんContentProviderテスト - Qiita

    public class StorageDao { private final Context mContext; public StorageDao(Context context) { mContext = context; } public Book getBook(int id) { try (Cursor cursor = mContext.getContentResolver() .query(StorageContracts.URI, null , StorageContracts.Colomns._ID + "=?" , new String[]{String.valueOf(id)}, null)) { if (cursor != null && cursor.moveToFirst()) { String title = cursor.getString(cursor.

    かんたんContentProviderテスト - Qiita
  • GolangでwebサービスのAPIを叩くCLIツールを作ろう - Qiita

    はじめに この記事はGo (その3) Advent Calendar 2016の18日目の記事です。 最近Goの勉強がてら、とある社内向けWebサービスAPIを叩くCLIツールを書いてます。 有名どころのWebサービスならたいてい既に誰かがSDKなりCLIツールを作ってたりするので、それを使ればよいと思いますが、クローズドな社内向けのWebサービスとかだと、まぁ欲しい人が自分で書くしかないですね。 で、簡単なプロトタイプが動くようになったので、このあたりで覚えたことを整理してまとめてアウトプットしておこうかなと思います。 内容的には サブコマンド形式のCLIツールを作り方 spf13/cobraの使い方 viperと連携した透過的な設定ファイルの読み込み version番号の埋め込み、Makefile pkg/errorsによるエラーの伝搬、contextを使ったタイムアウト 標準のne

    GolangでwebサービスのAPIを叩くCLIツールを作ろう - Qiita
  • Go でロックする - Qiita

    はじめに この記事はGo Advent Calendar 2016 の17日目の記事です。 並行処理をする時にはロックが重要になります。 GoではchannelとMutexという仕組みを提供しています。 この記事では色々なロックを作りたいと思います。 tl;dr channelでロックを作ることは有意義です。 ただ、Mutexのほうが良いこともあります。 良い方法を選びましょう ロック無し ロックの意味を確かめるためにも、まずはロック無しのコードから始めます。 func main() { counter := 0 for i := 0; i < 1000; i++ { go func() { counter++ fmt.Print("*") }() } time.Sleep(3 * time.Second) fmt.Printf("\n%d\n", counter) } この関数を実行する

    Go でロックする - Qiita
    jagua
    jagua 2016/12/22
  • AndroidCleanArchitectureでKotlin採用する際に考えたこと - Qiita

    はじめに この記事はAndroidAdventCalendar13日目の記事です。AdventCalendar初参加! ここ1年間はCleanArchitectureSwiftKotlin開発やってました。 この記事ではAndroid開発でKotlin採用した際に検討したこと、特にドメイン設計周りをJavaと比較してみようと思います。 Kotlinどれくらいやってた はじめて4ヶ月くらいのひよっこです 春くらいまではiOS(Swift)で、8月くらいからAndroid(Kotlin)を始めてみました。 CleanArchitectureは我流な所あるので単語の使用など間違いがあったらごめんなさい Kotlinを採用する前に考えたこと CleanArchitectureはPresentation層の特にMVPに目がいきがちですが、Domain層の表現でアプリ全体の設計が決まってくると考え

    AndroidCleanArchitectureでKotlin採用する際に考えたこと - Qiita
  • Re:ゼロから始めるElectron開発生活 - Qiita

    この記事は ドワンゴ Advent Calendar 10日目の記事です。 こんにちは。ニコニコ静画でフロントエンドで開発を行っている @nagisio です。 去年に引き続き、今年も冬コミに落ちて時間があるのでアドベントカレンダーに参加させていただきます。去年の記事は「新卒でもモダンなフロント開発がしたい!」でした。 今年一年の所感ですが、Reactの採用プロダクトが非常に増えてきている印象です。「You Don't Need jQuery」といった記事や、「Reactを使うとなぜjQueryが要らなくなるのか」といった記事が出てきたりと、Reactの勢いの強さが伺えます 記事はますますモダン化が進むフロントエンド界隈において、今もっとも熱い(であろう)フレームワークReactとその他色々なあれこれを駆使して簡単なElectronアプリをゼロから開発(未完)しましたので、ご紹介します1

    Re:ゼロから始めるElectron開発生活 - Qiita
  • あなたがサイヤ人の時、Vimはスーパーサイヤエディタになる - Qiita

    人はスーパーサイヤ人に憧れるものです、しかし現実ではなれる人は限られています、日夜修行していつかスーパーサイヤ人になれる日を夢見るのもいいですが、ここでは変わりにVimにスーパーサイヤエディタになってもらいます。 そんなプラグインを作りました。 kuririn-no-kotoka.vim wordijp/kuririn-no-kotoka.vim(GitHub) インストール方法や使い方はREADME.mdに記載しています。 ※動作確認はWindowsのみで行っているため、Linunx/Macでの確認ができていません デモ このプラグインはこちらの動画(Youtube)を見ながら作成しています。 あなたがサイヤ人ならクリリンを殺された怒りでVimがスーパーサイヤエディタへと覚醒します デモでは音が出ませんが、シュインシュインの効果音も出ています。 あなたがへたれ王子なら恐怖のあまりガタガタ

    あなたがサイヤ人の時、Vimはスーパーサイヤエディタになる - Qiita
    jagua
    jagua 2016/12/22
  • Vim 8.0 Advent Calendar 22 日目 新しいスタイルのテスト - Qiita

    この記事は Vim 8.0 Advent Calendar の 22 日目の記事です。 Vim 8.0 では、Vim 体のテストのスタイルが新しくなりました。 新しいテストのサンプル 新しいスタイルのテストは Vim 体のテストのために追加されたものですが、基的に Vim script の機能であるため、プラグインのテストにも利用できます。 以下に、新しいスタイルで書かれた簡単なテストコードを示します。 " テスト対象の関数 function! Add(a, b) abort return a:a + a:b endfunction " -------------------------- function! Test_Add() abort call assert_equal(5, Add(2, 3)) endfunction function! s:run_test() abor

    Vim 8.0 Advent Calendar 22 日目 新しいスタイルのテスト - Qiita
    jagua
    jagua 2016/12/22
  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
    jagua
    jagua 2016/12/22