SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発現場インタビュー(AD)

日本発! 世界5500万ユーザーの「TimeTree」を支えるAndroidエンジニアが直面してきた技術的負債

  • X ポスト
  • このエントリーをはてなブックマークに追加

 登録ユーザー数が5500万を越えた、日本発の共有カレンダーサービス「TimeTree」。今回はAndroid版の開発に携わるエンジニア2人に、世界で使われているサービスならではの技術的な課題や新技術導入について話を訊いた。

  • X ポスト
  • このエントリーをはてなブックマークに追加

株式会社TimeTree Androidエンジニア 田邉広樹氏
株式会社TimeTree Androidエンジニア 田邉広樹氏

「世界の多様なAndroid端末上で動くアプリ」を作る難しさ

──自己紹介をお願いします。

田邉:Androidエンジニアの田邉です。前職ではバックエンド開発、Webフロントエンド開発、Androidアプリの開発をしていました。前職の同僚とTimeTreeを創業し、初期にはWeb版の開発をしていた時期もありますが、メイン業務としては一貫してTimeTreeのAndroid版の基本機能開発を行っています。

和田:Androidエンジニアの和田です。Android登場から1年ほどでガラケーから乗り換え、当時はまだAndroid 2.3で発展途上だったのでアプリ開発を始めたら楽しく、そのままAndroidエンジニアとしてのキャリアをスタートさせました。Androidアプリ開発やWebシステム開発で数社を経てからTimeTreeに転職しました。現在は主に公開カレンダーの機能を担当しています。

──TimeTreeの特徴について教えてください。

田邉:カレンダーアプリですが、友達や家族と予定を共有できるのが最大の特徴です。ライブのスケジュールなど多くの人に告知するための公開カレンダー機能もあります。現在は世界で登録ユーザー数が5500万人を越えるなど、規模の大きなサービスに成長しました。

和田:半数以上が海外ユーザーで、アメリカ、ドイツ、台湾、韓国、イギリスなどを中心に多くのユーザーさんに使われています。技術的な面では、基本的には標準的でモダンな技術を採用しています。新しく入社した人が戸惑わないように、あまり独自の技術を使わないことも大切にしている点です。

──以前取材したiOSチームと同じ方針ですね。デザイン部分では独自実装もあるとか。

田邉:デザインの実装はどのアプリも試行錯誤しているところではないでしょうか。TimeTreeのレイヤーの表現はマテリアルデザイン2、3とも異なり、また配色の定義も独自です。ライトモード・ダークモードそれぞれの配色一覧をデザイナーと連携して作成し、色の定義が分散しないように注意しています。また、この一覧はiOSとも共有していてプラットフォーム間での差異が発生しないようにしています。

和田:ただ、マテリアルデザインの配色とは異なるため、色を表す名前(属性)に対応するカラーコードが分かりづらく、Sketchで作ったデザインを見ながら実装しにくい問題がありました。各テーマ・属性のカラーコードがわかるプレビューを作成して、Android Studio上ですぐ確認できるようにしています。

色の違い
カラーコードのプレビュー

──機種の多さはAndroidの特徴ですね。技術的な困難などはありますか?

田邉:デバイス固有の問題など調査が難しい場合もあります。例えば、特定のメーカー端末で通知がでないことがあり、該当端末には「この設定をしてください」とお知らせを出したこともありました。問い合わせ対応チームと日々情報共有し、連携しています。

和田:標準に合わせて開発していれば基本的には大丈夫です。最近はタブレットや折りたたみスマホも増えてきていて対応が必要になっています。幅広いデバイスに合わせたUI改善も進めていきたいです。

──グローバルで使われているプロダクトですが、多言語対応はどのように?

和田:アプリは13言語に対応しています。翻訳サービスで文言を管理し、strings.xml を生成してアプリに反映する形で運用しています。社内の英語、フランス語、ドイツ語、中国語、韓国語が分かるメンバーがそれぞれ翻訳結果をチェックしてくれていて助かっています。

田邉:例えば、日本語で「破棄」は英語では文脈によっては「cancel」や「discard」に分かれますが、翻訳サービスでは「cancel」になっている場合でも、メンバーが「discard」の方が適切だと判断した場合はそちらを採用しています。また、「既読」は英語だと過去分詞形の「read」ですが、それだと現在形の「read(読む)」と区別がつかないので、翻訳サービスに頼むときに画面のスクショを添付したり、英語で補足説明したりするなど、翻訳のクオリティを上げるための工夫をしています。

──タイムゾーンは?

田邉:魔境ですね(笑)。基本的には端末のタイムゾーンで表示できるように実装していますが、たまにタイムゾーンの追加や変更があり、表示時刻がずれてしまうことがあります。サマータイムも鬼門で、切り替えの時期になると問い合わせが増えます。

和田:日本でテストしている分には何も問題ないことが多いので、問い合わせで気づくことが多いですね。ユニットテストを日本以外のタイムゾーンで実施するなどして早期発見に務めています。

次のページ
技術的負債解消のため、新技術をスムーズに導入するには?

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
開発現場インタビュー連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

ミヨグラフィ(ミヨグラフィ)

フットワークが窒素よりも軽いフリーランスフォトグラファー。ポートレート、取材、イベントなど主に人物撮影をしています。英語・中国語対応可能。趣味は電子工作・3Dプリント・ポールダンス。 Webサイト

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社TimeTree

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19986 2024/09/10 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング