woshidan's blog

あいとゆうきとITと、とっておきの話。

2016-01-01から1年間の記事一覧

Androidを触っていた人がiOSのOSやクラスライブラリの概要について本を読みました

「iOSもAndroidもスマートフォンなのだから、まあなんとか」と思って本を買って読み始めたところ、想像していた以上に違いがありそうで楽しそうですね、という感じでした。 iPhone・iPadとiOSについて OSのバージョンごとに出てきた機能について コピー&ペー…

rubyとAndroidを触っている人がObjective-Cを一年以上ぶりに見たときの感想

こちらを参考にしながら、Objective-Cを一年以上ぶりに見たら結構面白かったので少しでも覚えられるようにメモをします。 オブジェクトの生成 NSObject *obj = [[NSObject alloc] init]; 往時は、くらくらするだけだったんですが、 rubyやJavaをある程度いじ…

CocoaPodsをつかってみてRealm入れてビルドしようとしたら「~.h」ファイルがないと言われてつまづいた

有線LANのアダプターを購入した結果無事、pod setupに成功いたしました。めでたい。 gitのネットワークの設定より、物理的にネットワーク環境を変えられるのであれば変えたほうが早いですね。 CocoaPodをセットアップする前にはLANのアダプタを無線wifiから…

XCodeでStoryBoardのPreviewをする

とりあえず、CocoaPodsを触ってみた、というブログ記事を書こうと思ったところ、自宅の回線 + 無線LANの組み合わせでは 5時間格闘してもセットアップに成功する気配が一向に見られず、諦めて有線のアダプタをぽちったところです。 有線のアダプタでもだめな…

AndroidのWidgetで時計を作ってみる

Androidを立ち上げたらホーム画面にいくつか時計や天気予報などが表示されていると思うのですが、AppWidgetクラスを利用してそういったホーム画面に表示されるウィジェットを作成することができます。 今回は時計もどきを作成してみたのでそのときのメモです…

Subscriber.onErrorが呼び出されると、それ以降のonNextメソッドは

いまさらなんですが、RxJavaでは一度Subscriber.onErrorが呼び出されると、それ以降のonNextメソッドや onCompleteメソッドは呼び出されないということを確認いたしましたので、そういう感じで。 // Gradle compile 'io.reactivex:rxjava:1.1.6' // RxAndroi…

No such property: main for class: org.gradle.api.internal.file.DefaultSourceDirectorySet

stackoverflow.com Android Studioのバージョンアップをしたら上記のページにあるような No such property: main for class: org.gradle.api.internal.file.DefaultSourceDirectorySet Possible solutions: name というエラーが出ました。 やったこと Androi…

転送と委譲の定義について

自分で書いてて、あれ、どっちがどっちだっけ、と少し混乱したので手持ちの本をぱらぱらと見て整理してました。 Effective Javaに書いてある転送と委譲の定義みたいなもの 以下は、Effective Javaに書いてある説明をざっとまとめたものになります。 転送 転…

前回のビルドのプロセスがキャッシュファイルのロックを取っていてAndroid Studioのビルドができないとき

Android Studioでビルドをしていると、なかなかビルドが終わらずに途中でキャンセルしたり、ついAndroid Studioごと強制終了できないかなと考えて実行してしまったりします。 そうしてビルドを終了させても前回のビルドが正常に終了せず、前回のビルドのプロ…

crontabの内容を管理するgem whenever の使い方を復習した

DSLっぽいrubyを使ってcrontabの内容を管理するgem whenever の使い方を復習しました。 本家GitHub https://github.com/javan/whenever # Gemfile gem 'whenever', '= 0.9.4', :require => false $ wheneverize . # [add] writing `./config/schedule.rb' [d…

potatotips #29で「メモリリークに関するウワサの今昔」という題で発表しました

speakerdeck.com 現在上がっているバージョンは発表後、懇親会やブログ記事などで教えていただいたことを元に、まとめの部分のApplicationContextをActivityContextに訂正させていただいております。 ytrino.hatenablog.com Yukiの枝折: Android:引数はthis…

SketchのPageを使ってみる

ちょっと画像を使ってメモしていたら長くなったので、4つに分割してお送りします。 Sketchの表示モード Sketchで画面に挿入できる要素について カスタムアートボードを作る Pageを使ってみる 今日はPageの使い方について。 Pagesについて SketchではPageとい…

Sketchでカスタムアートボードを作る

せっかくSketchを買ったので少し勉強しました。 ちょっと画像を使ってメモしていたら長くなったので、4つに分割してお送りします。 Sketchの表示モード Sketchで画面に挿入できる要素について カスタムアートボードを作る Pageを使ってみる 今日は自分でアー…

Sketchで画面に挿入できる要素について

せっかくSketchを買ったので少し勉強しました。 ちょっと画像を使ってメモしていたら長くなったので、4つに分割してお送りします。 Sketchの表示モード Sketchで画面に挿入できる要素について カスタムアートボードを作る Pageを使ってみる 今日は、Sketchで…

Sketchの表示モードについて

せっかくSketchを買ったので少し勉強しました。 ちょっと画像を使ってメモしていたら長くなったので、4つに分割してお送りします。 Sketchの表示モード Sketchで画面に挿入できる要素について カスタムアートボードを作る Pageを使ってみる 今日はSketchの表…

Activityの各ライフサイクルメソッドの役割について

Activityのライフサイクルメソッドをなんとなくしか理解していなかったので、 onCreate onStart onResume onPause onStop onDestroy の順番に呼ばれて、なんとなく、 onCreate、あるいはそこから呼び出すメソッドでレイアウトファイルに書いたViewの初期化を…

ライフサイクルコールバックのsuperについて、自分の実装の先に呼ぶか、後に呼ぶか

ライフサイクルコールバックのsuperについて、自分の実装の先に呼ぶか、後に呼ぶかというのが気になっていて、 java - What is the correct order of calling superclass methods in onPause, onStop and onDestroy methods? and Why? - Stack Overflow とい…

Java言語で学ぶデザインパターン入門[マルチスレッド編]を読みました

世の中には、RxJavaやIntentServiceといった初心者でも一応非同期処理を書けるライブラリはあるのですが、それでも隠しきれない理解不足を痛感したため、Java言語で学ぶデザインパターン入門[マルチスレッド編]を読みました。 実を言うと、以前に一度は目を…

バージョン指定をしない時、Railsのrake db:migrateでchangeメソッドを実行するMigrationのインスタンスの配列をどうやって取得しているのか

migrationで厄介な対応が必要な場合、SchemaMigrationをいじって整合性を取る必要性がある、と先輩が言っていたのを聞いて、ふむふむと追いかけてみました。 なお、この記事に出てくるコードのRailsのバージョンは、5.0.0.alphaです。 まとめ バージョン指定…

LayoutInfalter#inflateの引数について

RecyclerView.Adapter の onCreateViewHolder メソッドの中で、 @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_in_list, pare…

JavaのCollections.sortは何ソートなのか

最近、本の中身をがっつりそのまんま、みたいなブログに書きにくい勉強のやり方をしているので、なかなかネタがないですね。 なので、ちょっと気になったことをメモしておきます。 Javaはコレクションクラスに対して、 Collections.sort(someList, new SomeC…

MacをEl Captainにして家に帰ってきたらSublimeTextが死んでた

このあいだの日曜日に、Sketchを使ってみたいという理由で、MacをOS X 10.9.5から10.11.4(El Captaion)にしたのですが、今日仕事から帰って来たら、SublimeTextが下記のメッセージを吐いてお亡くなりになっていました。 github.com 上記のissueにある通り、E…

ToolbarのMenuItemを一度表示した後に切り替えたい

ToolbarのMenuItemを、その後のActivityの状況が変化するなりして切り替えたい*1といったことが稀に良くあります。 そう言う場合、ActivityにToolbarを置いている場合は下記のようなコードでとりあえず対応可能です。 // Activity内 private int mMenuResour…

FragmentでToolbarのMenuを使う

とある事情によりFragmentからToolbarのMenuを使いたくなりました。 Fragmentを使ってMenuを動的に作成する « Tech Booster Android。フラグメントでアクションバーを使う。 - そごうソフトウェア研究所 上記の記事を参考にして試してみたのですが、現在では…

Realmのインスタンスを取得する前にmigrationを常に行うかどうか判定させたい

RealmはAPIが動作が軽量でシンプルで気軽に使えるといわれるAndroid用のDBの一種ですが、 まだまだMigration周りはめんどくさいようです。 Realmを使用したアプリの場合、一度インストールされたアプリ内のスキーマを変更するにはMigrationが必要になりまし…

AndroidのIntentFilterのdata要素のpathPatternの挙動について

http://developer.android.com/intl/ja/guide/topics/manifest/data-element.html data要素のURIでpathPatternの指定が出来るのですが、Patternと言いつつ、 そのパスが一致するか、*のワイルドカードを使ってその階層が入るか、くらいしか指定できず、 andr…

Androidで外部サーバからファイルをダウンロードする

通信周りでRetrofitを使っているとレスポンスがJSONばかりを想定していて、ファイルのダウンロードする場合はどうしたらいいのか、そもそも私はファイル入出力をまともに扱ったことがあったのかと、少し途方にくれてしまったのでメモ。 内容 処理の流れとク…

DIパターンとストラテジーパターンの違い

potatotipsで紹介されたKotlinのアプリのリポジトリを読んでいたら使ったことの無いlateinitというAPIが出てきて、@Injectというアノテーションがあるから、おそらくこれはDIだな、と思ったのですが、よくわからず。 いつの間にかKotlinでなくDIの勉強をして…

potatotips #26でKotlinを使っていて思っていたことについて発表してきました

potatotips #26でKotlinを使っていて思っていたことについて発表してきました。 connpass.com speakerdeck.com 発表内容について まず、自分はKotlinを選定していないし、Javaでの経験がしっかりあるわけでもないので、選定理由らしいものをそれらしく言うの…

BottomSheetを作るためのライブラリについてメモ

stackoverflow.com 現在、公式のサポートライブラリに無いマテリアルデザインのコンポーネントで、BottomSheetというものがあります。 下からすっと選択肢が出てくるシートですね。 DIalog用のActivityやFragmentをいじってごにょごにょとね...とか、時間が…