tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

React NativeでiOSアプリをAndroidアプリに移植するときに気をつけること

数ヶ月前、自社製品(2年以上前にiOS版をリリース)のAndroid版アプリを開発/リリースしました。アプリはReact Nativeで実装されており、多くのコードがそのままで動きます。しかし、ビルド設定やデバイス固有のNativeコードについては、アプリを正しくビルド…

ベイエリアロックダウン(自宅退避令)の74日を振り返る

ベイエリアで自宅退避令(Shelter in Place)が発動されたのは3月17日のこと。それから6月1日までほとんどの長距離移動や経済活動は制限され、実質的にロックダウン状態だった。この特殊な状況は記録に値するかもしれないと考え Twitter で毎日 #ベイエリア封鎖…

業務用エスプレッソマシンを家に導入してハッピーライフを送る

ここ数ヶ月、ラテ作りにハマっている。COVID19の影響で完全在宅勤務になった2月からは毎日1-2杯は入れている。 使っているエスプレッソマシンはRancilioのSilviaという、いわゆる業務用モデルである。 ラテ好きで、コーヒーショップでよく飲んでいる人なら、…

読んだ本 2020年 2月

3月も中頃だけど、2月に読んだ本たち。本はいつ読んでいるかというと、通勤時の行きの電車で読んでいる(帰りは仕事している)。電車はだいたい30分で、月12回(週3回)ほどなので、だいたい6時間ほどで4冊読んでいる計算だ。今月読んだ本だとテッド・チャンの"…

柔軟に開発チームを拡張する ~スタッフ・オーグメンテーションの知見~

ベイエリアにある今のスタートアップに入っておよそ一年ちょっとが経過しました。入社してから開発の他に採用やチーム作り、プロジェクトの推進などに力を入れて取り組んでます。今回は UI 改善や短期的なプロジェクトを回すために、スタッフ・オーグメンテ…

読んだ本、観た映画 2020年 1月

通勤時間や息抜きにそこそこ本を読んだり映画を観ているのに、心の中やノートに感想を留めておくのはもったいないなと思い、ブログに毎月記録することにした。最近の関心はマネジメントやエンジニアのチーム作りなので、それに関連した本を何冊か読んだ。と…

iOS NativeからReact Native に乗り換えた Shopify の話聞いてきた

"最も使われているサービスのひとつを iOS Native から React Native に作り変えた" というアナウンスメントを出し話題となった Shopify で、まさにその内容を扱った React Native の meetup があり、参加してきたので内容と所感をまとめました。 React Nati…

2020 年の React Native 開発

2019 年は React Native にとってはさまざまな変化があったので、それらを振返りつつこの記事では最近の React Native をめぐる状況と個人的見解について書きます。採用を検討している方、Flutter などのクロスプラットフォーム開発フレームワークと比べたい…

赤ちゃんのねんねトレーニングコンサルタントを雇ったら QoL が爆上がりした

我が家に娘が生まれて 6 ヶ月が経ちました。育児にもだいぶ慣れてきたのですが、唯一苦労しているのが寝かしつけでした。どうやったら健やかに寝てくれるのか模索していたところ、ねんねトレーニングを専門で行う睡眠コンサルタントの存在を知り、トレーニン…

Mutation 後のキャッシュ更新処理についての設計指針(GraphQL, Apollo)

前回は、Apollo GraphQL における Mutation(トランザクション処理)の前提知識としてキャッシュ機構について説明しました。(記事はこちら) 今回は React Apollo(v2) における Mutation 後のキャッシュ更新処理について整理しつつ、どのパターンをどのユースケ…

React Apollo のキャッシュ機構とアクセス

GraphQL におけるトランザクション処理は Mutation と呼ばれます。トランザクション処理の結果に基づいてビューも更新するのが一般的ですが、GraphQL の場合、いくつかの手法があります。それらの手法、どれを採用すべきかについては、後続の記事にて解説す…

ソフトウェアエンジニアと育児の Retrospective (生後 1 ヶ月編)

娘が産まれてあっという間に 6 週間がたった。毎日ドタバタ眼の前のことに追われて過ごしているので、日々どのように時間を使っていて、何ができて、何ができていないのか、正直あまり把握できていない。そこで記録を兼ねて振り返ってみることにした。

奥さんの脚を抱えてお産にのぞむ ~ベイエリア出産立ち会い体験記~

2週間前、娘が産まれた。アメリカは出生主義で、すぐに誕生証明が発行されたので、いまのところ娘は"アメリカ人"だ。日本国籍はこれから手続きをする。出産まで思いもよらずいろいろな出来事があってドラマチックだったので、この経験と感動を書きとどめてお…

旅をしながら仕事をする、あるいはリモートワークができるチームの作り方の話

12月中旬から1月中旬のおよそ3週間と少しのあいだ、ヨーロッパを旅しつつリモートで仕事をしていました。自分が働いている会社は現在サンフランシスコと日本に拠点があり、日本にいるメンバーも北海道や北関東など様々な場所からリモートで働いています。今…

クライアントとサーバーどちらに実装するかの設計指針をチームで持つこと

モバイルアプリケーションを開発していると、この要件や仕様はクライアントとサーバーどちらに置くべきか、という議論がチームでなされることがしばしばあります。例えば、 あるレスポンスAを受けて処理Bを行い、その結果をユーザーに提示する 登録処理など…

海外の国際デベロッパーカンファレンスに採択されるまでの道のりと登壇のノウハウ

11月にアメリカでDroidconと呼ばれるAndroidのデベロッパーカンファレンスに初めて登壇しました。この記事では海外(日本国外)カンファレンスの選択、採択されるまでの道のり、発表までどのような準備が必要かをまとめてみました。

メルカリを退職してChanoma, Inc. にジョインしました

近況報告です。11月頭にメルカリを退職し、サンフランシスコを拠点とするChanoma, Inc.にジョインしました。

シリコンバレーに引っ越しました

5月末に、1年住んだサンフランシスコを離れ、シリコンバレーにあるサニーベールに引っ越ししました。

Android App Bundle/Dynamic feature modulesにみるモジュール化の未来

Google I/O 2018で発表された新機能であるAndroid App BundleとDynamic feature modulesが大規模アプリのペインポイントを解決しそうなので、早速利用/サンプルプロジェクトを触ってみた所感などを書きます。(5/9Dynamic featureのテスト方法について更新し…

ワイナリーの中心で泥温泉に入る ~ナパバレー・カリストガ~

ナパといえばワイナリーで有名ですが、実は温泉が湧く地域があります。ナパの北部に位置するカリストガという場所です。 以前から噂に聞いていた、ドラクエに出てきそうな地で泥温泉に入ってきたのでレポートします。

日本向けのアプリとUS向けのモバイルアプリの違いはなにか

日本向けアプリとUS向けのモバイルアプリを開発した経験から「日本のアプリとUS向けのアプリの違いって何ですか?」と聞かれることがあります。個人的に最も違う点を挙げるなら、タイポグラフィだと思います。具体的にどういうことなのか、またもし海外向け…

深セン テックリサーチ・レポート(後編) シリコンバレー周辺に住む人からみた中国のシリコンバレー

テックリサーチ・レポート後編は深センの"中国のシリコンバレー"としての側面を追います。 自分は今回深センに行くにあたりなんのツテもなかったのですが、中国人の友人に現地の人を紹介してもらい、現地のテックコミュニティに少しだけ切り込むことが出来ま…

深セン テックリサーチ・レポート(前編) 壮大な社会実験が行われている街

2/20-2/24にMercari Tech Researchのメンバーとして、中国のシリコンバレーと呼ばれる深センと広州を訪問してきました。興奮冷めやらぬうちにレポートします。 テックリサーチとは? メルカリで去年から始まった施策です。諸外国を訪問し、その国のITサービス…

「Android アプリ設計パターン入門」でReactNativeハイブリッドアプリやMVVMアプリ設計について執筆しました

本を書きました! ひょんな経緯から、クラウドファンディングによるAndroid設計本「Android アプリ設計パターン入門」の執筆に携わりました。 自分が担当した章は「7章 チームとアーキテクチャ」になります。クラウドファンディングの本で手にとっていただく…

アメリカ西海岸に移住して2年がたった

アメリカのベイエリアに移住して2年がたってしまいました。タイトルはベイエリアよりもキャッチーかなと思って"西海岸"にしました。ちょっとした節目であるので、環境や心境の変化などをつらつらと書きとめておこうと思います。

Dagger2 + KotlinでEspressoのInstrumentation test を書く

Instrumentation Testを書く時、実際にAPIリクエストは行わせず、APIレスポンスをmockしたいですよね。方法としては2通りはあるかと思います。 Gradleで Test flavorを作り、APIを差し替える Dagger2を使い、mockをinjectする mockの値を変更するのが容易な…

Nike+とともに走った4000kmを振り返る

Nike+を使いはじめて7年ごしで4000kmを達成しました。 きりが良いので振り返りつつ、継続して走ってこれた理由を考えてみます。

React Nativeハイブリッドアプリケーション開発ことはじめ

React NativeとNativeのハイブリッドアプリケーションはFacebookやAirbnbなど大企業がを積極的に導入していることやNativeアプリを部分的にリプレイスできる利便性から今後も採用が増える分野と考えられます。本記事ではハイブリッドアプリを開発した自分の…

結婚式でLINE Message APIを使った写真共有サービスを作った話

先日結婚式を挙げました。式中ご参列いただいた方と簡単に写真を共有したいなと思い、LINE Message APIを使ってそういうマイクロサービスを作ってみました。ここではどのように実装していったのかを記憶が薄れぬうちに書きました。

Flow導入して数ヶ月がたった所感

ReactNativeプロジェクトで、型がないことによるつらいシーンが多くなり(特に変数の解釈に起因するバグ)、Facebook製の静的型解析ツールである[Flow](https://flow.org/en/)を数ヶ月前に導入しました。導入時の学びと、しばらく運用して感じていることについ…