384ta

by Ryutaro Miyashita

Mobile App Engineer

Read this first

dbrand スキンレビュー

dbrand というテックガジェットのスキンを制作、販売しているサイトがあります。海外の EC ですが、日本にも発送をしてくれます。

最近、Android 端末はプレミアムな素材を使ったものが多く、手にしたときの質感が優れています。しかし、背面にガラスを使った端末 (Xperia Z シリーズ, Nexus 4, Galaxy S6 / S7 etc.) も多く、強度の他に指紋が目立つのも確かです。

ケースを使うことで端末を保護し、本体背面への指紋の付着を防ぐことができますが、 Android 端末は大型のものが多く、ケースを装着することでさらに大きく、重たくなってしまいます。そこで、スキンを使うことでサイズへの影響を防ぎつつ、指紋の付着を防ぐことができます。

dbrand が提供しているスキンはクオリティが高く、安心して使うことができます。今回は dbrand のスキンを紹介します。

 カーボン調スキン

devices.jpg

dbrand が提供するスキンで、最もベーシックなスキンはカーボン調スキンです。この記事を書いている時点で、

  • Xperia Z3 Compact
  • Nexus 4
  • Nexus 5X
  • Galaxy S7

のカーボン調スキンを使っています。クリーンな見た目で質感も良いと思います。また、一部の端末は、背面のロゴ部分をくりぬくオプションを選ぶことができます。写真中央の Nexus 4 では、 “Nexus” ロゴ部分がくりぬかれています。もちろん、くりぬかないオプションも選べます。

dbrand-nexus5.png

また、カーボン調スキンは MKBHD パックというものを選ぶことができます。テックレビューを主に展開している YouTuber の Marques Brownlee とのコラボ商品で、黒・白・赤の 3 色のスキンセットをお得に買うことができます。上の写真の Nexus 5X が MKBHD パックのスキンです。

 サイズ

Continue reading →


Samsung Galaxy S7 レビュー

MWC で発表されてから欲しいと思っていた Samsung Galaxy S7 を買いました。購入元は 1ShopMobile です。しばらくは Gold モデルしか無かったのですが、巡回中に全色在庫が復活したのを見て、そのまま Black Onyx をポチりました。

gs7.jpg

 1. ハードウェア

デザインは前作 Galaxy S6 から大きく変わっていませんが、カメラの出っ張りが小さくなり、 micro SD カード対応が復活し、IP68 の防水・防塵まで付いています。金属のシャシーの前面・背面ガラスで覆ったプレミアムモデルです。

サイズ感は iPhone 6s そっくりで、併用していた Xperia Z3 Compact と比べるとやはり大きく、重たく感じます。何となく Nexus 4 を思い出すのはラウンド加工されたフロントガラスを持つからでしょうか。

Xperia Z3 Compact も Nexus 4 も dbrand のカーボン調スキンを背面に貼っています。滑り防止だけでなく、背面ガラスに指紋がべたべたと付くことを防ぐためです。

Galaxy S7 用のスキンも注文をして届くのを待っているところですが、素の状態だと非常に滑りやすく、落とした場合にダメージが大きそうなので Spigen の TPU ケースに入れています。

指紋認証も iPhone の Touch ID と同じようにホームボタン上に指を置くことで対応します。スピードも iPhone 6s の第 2 世代 Touch ID と遜色ありませんが、認識精度は iPhone の方が高いように思います。

また、 iPhone の方がホームボタンが丸く、くぼみに指を置くような形になるため使い心地が良いです。 Galaxy S7 はホームボタンがディスプレイよりも出っ張っているため、位置は分かりやすいのですが、指紋認証時の指の置き場がいまいち定まらず、滑ってしまって指紋認証に失敗するということが何度かありました。

 2. ソフトウェア

Android 6.0 Marshmallow

Continue reading →


完全栄養飲料 Comp レビュー

 ソイレント

ソイレントというアメリカで有名な栄養機能食品があります。人が生きるために必要な栄養素が全て含まれていて、従来の食事の代わりにソイレントを使うことで、食事の手間から解放されるという未来的な商品です。

発売当初は粉末タイプのものが売られていて、自分で粉末を水に溶かして飲むというものだったのが、今ではドリンクタイプのものも併売されているようです。

発表当初からソイレントには興味を持っていました。

というのも、目が覚めてから家を出るまでにあんまりしっかりしたものを食べてしまうとすぐに腹痛をおこしてしまったり、夜、帰宅時間が遅い場合にコンビニ弁当だったり、インスタント食品で済ませてしまうことが多くなっていたからです。

しかし、日本はサインナップするときの国の選択肢には入っていますが、需要に対して生産が追いついていないのか、アメリカ、カナダ以外には発送されません。

 Comp

そんな中、日本版ソイレントとも言うべき、 Comp が発売されました。クラウドファンディングを成功させ、今ではソイレントと同じく、高い需要により発送まで約 3 週間待ちの状態です。

COMP開発のキッカケは、完全食Soylentの発売に遡ります。

クラウドファンディングのサイトにも書かれているように、 COMP は明確にソイレントのフォロワーです。ただし、

日本人の栄養基準にも少し合わなかったので、改良も必要と思われました。

とあるように、日本人向けに最適化されています。そんな COMP を勤め先の同僚から教えてもらい、すぐに注文をしました。ちょうどその日までに注文すれば、翌々日ぐらいには発送されるというタイミングだったので助かりました。

前置きが長くなりましたが、COMP の感想を紹介します。

 1. パッケージ

COMP は真っ白なアルミジップパッケージに入っています。パッケージの表面には COMP のロゴが大きく掲載されており、裏面には栄養価や飲み方、成分表が掲載されています。

comp_front.jpeg

パッケージの中には COMP

Continue reading →


DroidKaigi 2016 に登壇しました

DroidKaigi 2016 が2016/02/18 と 2016/02/19 に開催されました。 DroidKaigi は開発者のための Android カンファレンスです。 2015 年から開催されて今年で 2 年目となる DroidKaigi ですが、せっかくなので登壇してみようと CFP を書いて送ってみました。

“Android エンジニアになって 2 年の学び” というタイトルで概要を書いて申し込みをしたところ、嬉しいことに採択され、登壇することになりました。今回はその感想文を書いてみます。

 CFP

Call for paper が出たのは 2015/11/04 でした。数日のうちに申し込みを済ませ、採択の連絡をいただいたのは 2015/12/08 でした。 CFP は Google フォームを経由して送る形になっていて、パブリックな Google スプレッドシートで閲覧できる形になっていたのが良かったです。

実は昨年も CFP を送っていましたが、その時は選考から漏れることになりました。今にして思えばですが、その時は選考漏れという結果になって良かったと思っています。ノリと勢いだけの内容でしたから、今回、もしも登壇することになったら、誰かの心に残る価値がある話をしたいと思っていました。

 発表内容

“Android エンジニアになって 2 年の学び” というタイトルで発表をしました。発表資料に関しては、 Speaker Deck に掲載しています。

このテーマを選んだ理由は、GitHub 上で多数のスターをもらっているライブラリの開発者や、先進的な技術を学び取り入れているエンジニアの話とは違う、2 年目が終わろうとしているタイミングの自分だからこそできる、初学者に向けた話ができるはずと思ったからです。

また、これは勝手な思いですが、凄いエンジニアのセッションだけだと、年々登壇のハードルがあがるんじゃないだろうかという気がしていて、洗練された Tips

Continue reading →


2015 年振り返り

 Live 参加

今年は意識的に、多くのライブに行ってきました。と、言っても決まったアーティストの近場の講演に出向くというものでしたが。

  1. Kalafina 7th Anniversary Live 2015 @ 渋谷 O-EAST (1 月)
  2. FictionJunction CLUB New Year Special LIVE 2015 @ 豊洲 PIT (1 月)
  3. Kalafina LIVE THE BEST Red Day @ 日本武道館 (2 月)
  4. Kalafina LIVE THE BEST Blue Day @ 日本武道館 (3 月)
  5. →Pia-no-jaC← Swing Pacchin Tour 2015 @ 渋谷公会堂 (3 月)
  6. live image 15 quinze @ 国フォ A (5 月)
  7. Yuki Kajiura LIVE vol.#12 “7days Spacial” DAY-1 @ 国フォ C (6月)
  8. Yuki Kajiura LIVE vol.#12 “7days Spacial” DAY-2 @ 国フォ C (6月)
  9. Yuki Kajiura LIVE vol.#12 “7days Spacial” DAY-3 @ 国フォ C (6月)
  10. Yuki Kajiura LIVE vol.#12 “オーチャード Special” 1 @ オーチャード (7月)
  11. Yuki Kajiura LIVE vol.#12 “オーチャード Special” 2 @ オーチャード (7月)
  12. Kalafina LIVE TOUR 2015~2016 “far on the water” 1 @ 国フォ A (10月)
  13. Kalafina LIVE TOUR 2015~2016 “far on the water” 2 @ 国フォ A (10月)
  14. Kalafina with Strings @ オーチャード (12 月)

合計 14 本。本当は 9 月に →Pia-no-jaC← の ONE NIGHT STRINGS

Continue reading →


Earin レビュー

earin.jpg

昨年の夏に Kickstarter で資金調達を開始して話題になった、左右独立のワイヤレスイヤホン Earin がいよいよ到着しました。

順調にいけば今年の頭には出荷される予定でしたが、ハードウェアスタートアップならではの様々な遅延があって、 10 ヶ月遅れて届きました。 Earin を知ったのは Engadget の記事で、ここには

現在は完全に稼働するプロトタイプが完成した段階。またすでにサプライチェーンの確保やEMSの選定までを済ませており

とあったので、プロジェクトが失敗して頓挫することも少ないだろうと見込んでの出資でしたが、それでもここまで遅れてしまうものなのですね。そんな Earin を使ってみての感想を書いてみたいと思います。

 ハードウェア

earin2.jpg

Earin は左右独立の Bluetooth イヤホンです。 aac / aptX コーデックに対応していて、出力側が対応が必要ですが、高音質で音楽を楽しむことができます。

L チャンネル、 R チャンネルの本体、充電器を兼ねたカプセル、写真には写っていないですがシリコン製のフィッティングパーツ、コンプライのイヤーピースが付いてきます (写真のイヤーピースは付属品ではない、別のコンプライイヤーピースです) 。

フル充電で 2 時間 50 分ほどの再生が可能で、充電器カプセルに入れて充電すればさらに再生時間を延ばせるというものです。充電器カプセル自体は Micro-USB ケーブルで充電します。

earin3.jpg

充電中はカプセルの LED が点灯し、終了すると消灯します。

Earin は L チャンネルで受信して、 R チャンネルに転送する仕組みを取っています。その為、 L チャンネル側が受信側の親機として機能します。

良くできているのは、充電のためにカプセルに入れると自動でペアリングが解除され、取り外すとまたペアリングされるところです。この仕組みによって、わざわざ充電のために、出力側の機器でペアリングを解除したり、再度ペアリングする必要がありません。

earin4.jpg

本体の大きさは、他に所有する iClever

Continue reading →


Realm meetup #8 参加レポート

realm-meetup-no8.jpg

2015/10/27、話題のモバイルデータベース技術 “Realm” のミートアップイベントである Realm meetup #8 が、 Sansan 株式会社を会場に行われました。今回は Reporter 枠というイベントの様子をレポートする代わりに優先的に参加できる枠を使っての参加ですので、イベントレポートを書きたいと思います:)

 Realm Recent Updates

まずは Realm の岸川さんと山﨑さんから、 Realm Objective-C, Realm Swift, Realm Java の最近のアップデートについて発表がありました。

 iOS

Realm iOS は最近 0.96.2 にアップデートされ、様々な機能強化がアナウンスされました。

  1. Xcode 7.1 でビルドされ、 Carthage や Pre-build バイナリを使っている場合もリンクできるようになった
  2. NULL プロパティがサポートされた
  3. キーパス・コレクション・クエリに対応した
  4. エラーハンドリングが改善された

また、注意点として、NULL 対応が入ったことで Realm の DB ファイルフォーマットが新しいものになり、ほとんどの場合でマイグレーションが必要になるそうです。

Objective-C 版でマイグレーションを行わずに対応するには、クラスメソッドである +(NSArray *) requiredProperties を使うと良いとのことでした。

Swift 版では Swift の構文である Optional がそのまま利用できるようです。

dynamic var name = "" // not null
dynamic var birthday: NSDate? // nullable

その他、詳しくはニュースリリースを見ると良いでしょう。

また、新型 Apple TV に搭載されている tvOS 対応も進められていて、とても興味深い話が展開されました。 GitHub の Issues 2691

Continue reading →


チャットを使って働くときに気をつけていること

私が働いている ChatWork では、会社名の通り ChatWork というビジネス向けのチャットサービスを開発・提供しています。社内のコミュニケーションももちろん ChatWork で行われていて、普段からプロジェクトチャットや雑談系チャットなど、大いに盛り上がっています。

チャットサービスを使って仕事のコミュニケーションを取る場合、メールのようにお決まりの定型文

○○ 株式会社 ○○ 様

いつもお世話になっております。○○ の ○○ と申します。

を書かなくて済みますし、発言がタイムライン上に並ぶので、話の流れが追いやすいなどのメリットがあると思います。また、気軽に発言しやすいので、やり取りが素早くスムーズにできるとも思います。

ただこの気軽さを先行しすぎて、やり取りが複雑化してしまうこともあるので、気をつけていることを紹介します。とてもシンプルなことです。

=====

 主語を書く

雑談系チャットでは良いのですが、大切なプロジェクトチャットでは極力主語にあたるものを書くようにしています。

  • クラッシュしました
  • バグを見つけました

と、チャットに書く場合はサラッと一言だけを残してしまいがちなのですが、このチャットを受け取った場合に「どういうことだろう」と考えてしまいますよね。なので、

  • ○○ の操作を行っていたら、クラッシュしました
  • ○○ を開いたら、表示がおかしくなるバグを見つけました

というようにちゃんと話のストーリーが分かるようにします。タイムライン上で話のキャッチボールが発生しなくても良い場合にはこう書くことが多いです。

 主語を省く

しかし、いつも主語を付けるわけではありません。自覚的に省いて発言する場合もあります。それは、話の流れを集中させたい場合です。

  • クラッシュしました
  • バグを見つけました

というチャットを受け取ってもらう側に「どういうことだろう」と思ってもらって、話の流れを作りたいときには主語を省きます。複数回の話のキャッチボールを行って、ディスカッションしたい場合ですね。

=====

これらはいつもいつも考

Continue reading →


AppCompatCheckBox でハマったこと

Android Support Library 22.1 の登場と共に、 AppCompatFooBar シリーズが充実しました。 Android 4.4 以下でも Material Design ライクな UI ウィジェットが使えるようになって、デザインの統一感が向上させられると思います。

そんな AppCompat シリーズの 1 つである AppCompatCheckBox を使うときにハマったことがあるので、共有したいと思います。話としては CheckBox に限らない、 AppCompatFooBar 全般の話なのですが、 CheckBox を触る上で出会った事柄なので …… 。

 AppCompatCheckBox がレンダリングされない

CheckBox を使って UI を組んでいた場所を AppCompatCheckBox に置き換え、いざビルドしてみても CheckBox がレンダリングされないということが最初に躓いたところでした。

001.png

やりたいことは、

  1. support-v7 の AlertDialog の上に ListView を乗せたい
  2. ListView の各行で使う View の中では AppCompatCheckBox を乗せたい

というものです。上のスクリーンショットを見れば分かるのですが、 本来各行の右側にあるはずの AppCompatCheckBox が表示されていませんね。

また、この例では AppCompatTextView の文字色もかなり薄い色になっていますが、躓いた環境では XML 上で textColor を当てはめていて、これも問題の特定に時間がかかった原因でした。

※ AppCompatTextView / AppCompatCheckBox には android:theme="@style/AppTheme" を適用しています。

 原因は LayoutInflater の使い方

Dialog の表示には support-v4 の DialogFragment を使っています。

Continue reading →


Android Design Support Library を少しだけ触ってみました

Google I/O 2015 で Android M Preview が発表されると同時に、Android Design Support Library (以下 ADSL) が使えるようになりました。

ADSL はこれまで Material Design ガイドラインにありながらも、標準 API や Support Library API では自前で実装するしかなかったパーツをライブラリとして、補完してくれるものです。

  • NavigationView
  • TextInputLayout
  • FloatingActionButton
  • CoordinatorLayout / Snackbar

の 4 つを触ってみました。

 ADSL の使い方

build.gradle に

dependencies {
  compile 'com.android.support:design:22.2.0'
}

を追加して、 Sync します。

NavigationView は DrawerLayout の中に設置する要素です。これまで RelativeLayout や ListView などを組み立てて作っていたナビゲーションドロワーを 1 つの要素で作ることができるようになりました。

drawer.png

<android.support.design.widget.NavigationView
    android:id="@+id/main_drawer_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/main_drawer"/>

app:headerLayout

Continue reading →

no