macOSアプリのCI事情2

まず、macOSアプリのCIを実現する上で必要なツール・サービスについて。

macOSアプリのCIでは、主に下記のツール・サービスを使用していくことになる。あらかじめ、各ツールの役割・立ち位置について頭に入れておくと、色々と理解しやすくなり、思い通りに動かない時にも対応しやすくなる。 “macOSアプリのCI事情2″の続きを読む

macOSアプリのCI事情1

デベロッパ・市場規模のせいか、iOSアプリのCI(継続的インテグレーション)に関する情報は簡単に見つかるが、macOSアプリやtvOSアプリのCIに関する情報はなかなか見つけにくい。長いこと苦戦してきたが、macOSアプリに関しては、ようやく良さげな解決策を見つけるところまで至ったので、ここに共有しておく。 “macOSアプリのCI事情1″の続きを読む

AndroidのData Binding Libraryが便利だ

Android Plugin for Gradle 1.5.0-alpha1から使えるようになったData Binding Libraryが便利だ。

Data Binding Libraryを使うメリットはData Bindingの概念がもたらす本来的なメリット(宣言的プログラミングが可能になる)と、Data Binding Libraryが備えている便利な機能がもたらす副次的なメリット(諸々の箇所で実装が短くなる)があるが、その内容は下記の記事でとてもわかりやすくまとめられている。

http://angelolloqui.com/blog/35-Improving-your-Android-apps-with-Data-Bindings

Data Binding LibraryをButterKnifeの代替になる、と紹介している記事も多く見かけるが、実際に使ってみるとそれ以上の有り難みを多く感じる。

  1. 表現に関するより多くのコードをレイアウト(XML)側の記述だけで実現できる場面が増え、FragmentやActivityがすっきりする。
  2. 自然と宣言型プログラミングになり、プレゼンテーションに関する処理とそれ以外の処理がFragmentやActivityの中に混在する、といったようなケースが減る。宣言型プログラミングを強く意識しなくても、半自動的にそうなるし、誰が書いてもそのようになる、というのは良いことだ。

具体的な導入手順を説明している記事はすでに多く出ているので、それらを参照されたい。最後に、凡ミスも多いがAndroid Data Binding Libraryを導入してすぐの頃にはまってしまったミスを列挙しておく。

  1. プロパティに違う型のデータを渡してしまっていた
    1. ProgressBarのprogressには本来intを渡すべきだが、Data Objectからはfloatを渡していた
    2. TextViewに数値の値を表示する時には、Stringで指定する。intを渡すとstringsのリソースのIDとして処理されてしまう。
  2. Data ObjectにパブリックなGetterを定義していなかった
  3. Importのし忘れ
    1. android:visibilityをセットする場合にdataセクションに<import type=”android.view.View” />を定義していなかった

参考情報

  1. Data Bindingとアニメーションの組み合わせについて

Parse亡き後、我々はどこに向かえば良いのだろうか

2017年1月28日にParseがシャットダウンすることが発表された。残念ながら、BaaSを使う上で懸念される最も大きいリスク・デメリットが具現化される形になってしまった。Parseの何が良くなかったのか、今後BaaSがどうなっていくのかを考えたいところだが、終了までの期間が限られているため、Parseに依存しているプロジェクトをどうするかを考え始めなければいけない。

なお、このポストの内容は新しい動きがあり次第、適宜追記していく予定だ。 “Parse亡き後、我々はどこに向かえば良いのだろうか”の続きを読む

色弱だと写真の現像・加工(特にポートレート)が難しいので、チートツールを作った

写真の現像・加工の作業は、音楽のミキシング/マスタリングと似ているなと感じることが多い。調整に時間をかけるほど、正しい方向に調整されているのか自信がなくなってくる。特に、僕の場合は色弱で、健常な人に比べて元々色味が少し違って見えているので、調整した結果が正しい色になっているのか、しばし不安になる。

“色弱だと写真の現像・加工(特にポートレート)が難しいので、チートツールを作った”の続きを読む

Ruby on RailsではなくParseという選択肢

長いこと、Ruby on Railsを使って様々なサービスやアプリのバックエンドを作ってきたが、今年に入ってからRailsの代わりにParseを使う場面が増えてきた。機能面や拡張性の問題など何かと不安があったのだが、半年以上実際に稼働しているサービスで使用してみた結果、期待以上の好印象を持っている。 “Ruby on RailsではなくParseという選択肢”の続きを読む

SIGMA 30mm F1.4 DC HSM Art

所謂撒き餌レンズのEF 50mm F1.8 IIを買ってから、すっかり明るい単焦点レンズの魅力にはまってしまった。EF 50mm F1.8 IIの写りには非常に満足しているが、X7につけると35mm換算で80mm相当になってしまうので、画角が狭いと感じることが増えてきた。悩んだ挙句、SIGMA 30mm F1.4 DC HSM Artを買った。 “SIGMA 30mm F1.4 DC HSM Art”の続きを読む

カスタムビューを作ったらIBDesignableにする

カスタムビューを作ったら、InterfaceBuilder対応(IBDesignable)にしたほうがいい。IBDesignableにすると、InterfaceBuilder上でカスタムビューの見た目を確認できたり、プロパティを設定できるようになり、Storyboard/Xibを使ったレイアウトの効率がとてもよくなる。 “カスタムビューを作ったらIBDesignableにする”の続きを読む

iOS 7対応を切るとサポート外になる端末、使えるようになる主な機能

数カ月以内にiOS 9が登場するのではないかと噂されている。アプリを開発・運用していく上で、どの世代のOS/端末までサポートするべきかというのは悩ましい問題だが、判断材料の一つとして、iOS 9リリース後、2世代前のiOS 7のサポートを切った場合(つまり、iOS 8以降のみを対象とした場合)に、どういうメリット・デメリットがあるかをまとめた。 “iOS 7対応を切るとサポート外になる端末、使えるようになる主な機能”の続きを読む