AndroidアプリのAndroidバージョンサポート基準を定めました

こんにちは、Androidエンジニアの syarihu です。

当社が提供するお金の見える化アプリ「マネーフォワード ME」のAndroidアプリ版では、2020年4月下旬にリリースのバージョン13.2.0からAndroidの最低動作バージョンをAndroid 6.0(API Level 23)にすることになりました。
対象のAndroid OSでAndroidアプリ版「マネーフォワード ME」を利用してくださっているユーザー様には重要なお知らせとしてすでに表示されていますが、今後はAndroid 6.0以上の端末にのみ最新のアップデートが配信されます。

今回のマネーフォワード MEの最低動作バージョンの引き上げを機に、当社で提供するAndroidアプリについてminSdkVersion(サポートするAndroid OSの最低バージョン)とtargetSdkVersion(アプリのターゲットとなるAndroid OSのバージョン)を判断する際の基準を社内で統一しました。

Android OSは毎年アップデートされるため、バージョンが増えるごとにサポートコストが増していきます。
AOSP(Android Open Source Project)によるAndroid OSのサポート(セキュリティアップデートなども含む)も古いAndroid OSには提供されません。
minSdkVersionを古いままにしておくことはセキュリティ面においても良くないため、minSdkVersionは定期的な見直しが必要だと考えています。
また、新規でAndroidアプリを提供する場合もこういったAndroid OSのサポート基準が定められていることでminSdkVersionを決めやすいため、そういった目的から今回Androidバージョンのサポート基準を定めることにしました。

minSdkVersionを上げることはプロダクトの利用ユーザーによって影響が異なるため、minSdkVersionを揃えるのではなく見直しをするタイミングや観点などの基準を揃えるだけにとどめて、実際に引き上げを行う判断は各プロダクトに任せるというスタイルをとりました。
会社全体で基準を揃えることで、引き上げを行った際に調査した内容などを知見として溜めておくことができたり、社内のAndroidエンジニア間で連携をとることが容易になるため、こういった基準を定めることは大きなメリットがあります。

本記事では、当社で定めたAndroidアプリのAndroidバージョンサポート基準についてご紹介します。

続きを読む

マネーフォワードCTOが考えていること(2020年3月)

こんにちは、マネーフォワード CTOの中出(なかで)です。

CTOの私が普段なにを感じて、どんなことを考えているかを、改めて言語化して、社内に共有するという取り組みをしています。
そうしたところ「当社のエンジニア組織に興味を持っている方にも読んでいただくのがいいのでは?」という社内の意見もあり、今回公開することにしました。

もちろん、日々考えていることは変化しているので、今後は四半期に一度ぐらいの頻度で、変更があれば更新していきます。
※公開用として、社内向けの内容を一部編集しております。

 

これからのマネーフォワードのエンジニア組織について

まず、マネーフォワードのエンジニア組織として「どこを目指すのか」という話をしたいと思います。

もちろんビジネスには「やれる・やれない」という議論も必要ですが、まずは私たちが「どこを目指すのか」という意志が必要です。

そして、「どこを目指すのか」を決めた時点で、どこまで到達できるかが決まると思っています。そのため、まずはその話をさせてください。

私たちよりも前を進んでいるIntuitという企業

海外には、先行して私たちと同じようなサービスを展開している企業があります。
その1つとして挙げられるのがアメリカのIntuitという企業です。

Intuitの社内にはJavaの開発者がいたり、ハーバードやスタンフォードのPhDがたくさんいます。

私たちよりも前を進んでいるプレイヤーに追いつくためにはどうしなければならないかを考えるときに、社内で働く人材の優秀さで追いつくことは最重要です。

もちろん一足飛びには出来ないですし、今はそれを口にするのもおこがましいのかも知れない。しかしそういう目線を持ち続け、それに向かって少しずつでも前に進めていくことが必要だと思っています。

会社のMission/Vision/Value/Cultureが魅力的であることはもちろんですが、待遇しかり、やりがいのあるチャレンジや自主性の発揮しやすさ、働きやすさなど総合的に魅力を向上させないといけないと考えています。

続きを読む

DroidKaigi 2020に登壇する予定でした & 登壇動画公開のお知らせ

こんにちは。
Androidアプリエンジニアのsyarihuです。

2020年2月20日、21日に開催が予定されていたDroidKaigi 2020ですが、昨今の状況により残念ながら開催中止となってしまいました。

中止になった経緯などについては、DroidKaigi 2020の開催予定だった初日の2020年2月20日に日高さんを始めとする理事の方々からライブ配信にて説明がありました。
まだご覧になっていない方はぜひ見ていただけるとよいと思います。

ライブ配信のあと、DroidKaigiスタッフの皆さまのご尽力があったおかげで、登壇予定だったスピーカーは任意で動画を撮影し、撮影した動画をDroidKaigi公式のYouTubeチャンネルで公開していただけるというアナウンスがありました。

DroidKaigi 2020にて登壇予定だった私は登壇動画を撮影していただくことにしました。
そして、2020年3月16日 14時からDroidKaigi公式のYouTubeチャンネルにてプレミア公開で登壇動画を公開していただいたのでここでお知らせします。

続きを読む

「Money Forward Techbook#2」を技術書典 応援祭に出品します

こんにちは、Androidエンジニアの syarihu です。

マネーフォワードの有志の社員が集まって立ち上げた「まねふぉ執筆部」では、前回の技術書典7 に引き続き、技術書典8でも技術書を出典する予定でしたが、技術書典8は昨今の新型コロナウイルスの影響により開催中止となってしまいました。
しかし、その代わりとして2020/03/07(土)から2020/04/06(月)まで約1ヶ月間に渡って「技術書典 応援祭」のオンラインマーケットと、それを盛り上げる各種オンラインイベントが開催されることになりました。

「技術書典 応援祭」を3月7日から約1ヶ月間に渡って開催します! – 技術書典ブログ
https://blog.techbookfest.org/2020/02/28/cheering-tbf/

まねふぉ執筆部は技術書典8で頒布する予定だった「Money Forward Techbook #2」を「技術書典 応援祭」のオンラインマーケットに出品します。

Money Forward Techbook #2:まねふぉ執筆部
https://techbookfest.org/product/5719802073055232

「Money Forward Techbook #2」とは

「Money Forward Techbook #2」は、マネーフォワードの有志の社員によって執筆した技術同人誌です。RSpecの再入門ガイドやKubernetesの移行プロジェクトにより得られた大切なポイント、「Kinsta」によるWordPressの運用などマネーフォワードを支える技術が盛りだくさんの内容となっています。

  • 電子版
    • 1,000円
  • 紙 + 電子版
    • 1,200円 + 400円(送料)

続きを読む

React Componentの実装ルールを決めてみた

こんにちは。
経費精算サービス「マネーフォワード クラウド経費」の開発チームでフロントエンドエンジニアをしている坂本です。

クラウド経費ではJSのライブラリとしてReactを採用しているのですが、最近クラウド経費で React Component を実装する際のルールをまとめたので、その話を書こうと思います。

 

なぜルールをまとめようと思ったのか

Componentの分割ルールとしてAtomic Design、スタイルの管理としてstyled-components、GraphQL用のライブラリとしてApollo Clientを導入し実装を進めています。
昨年の10月までは挙げた3つとも使用していなかったので、試行錯誤しながら進めています。

チームメンバーの各々が試行錯誤しながら実装を進めていくので、最近はチーム内で認識の齟齬や持っている情報に差が出るようになりました。
そこで一旦現状を整理して、クラウド経費でReact Componentを実装する際の各種ルールをまとめよう、となりました。

 

出来上がったルール

まとめたルールは以下のようになりました。

- Atomic Designを意識する
  - 各レベルのルール
  - 自分のレベル以下の要素で構成する
  - 最初から完璧に設計する必要はない
- ファイルの命名規則
- Functional Componentで実装する
- Container ComponentとPresentational Componentに分けて実装する
- Templates以下のComponentではuseQuery・useMutationを実行しない
- global state と local stateの使い分け
- スタイル管理
- その他
  - export defaultを使用しない
  - Componentを作成する際はclassNameを受け取ることが可能なようにpropsを定義する
  - Material-UIを利用する
- Componentの利用
  - RailsのViewへのReact Componentの埋め込み
  - client/Components/other/以下のComponentは原則利用しない

以下ではインデックスの中からいくつかをピックアップして、詳細を書いていきます。

続きを読む

Ruby の Enumerator とたわむれる

こんにちは!
マネーフォワード クラウド経費 というサービスで Rails エンジニアをやっている野田 (@quanon_jp) と申します。

クラウド経費の開発拠点は福岡にあるのですが、福岡拠点では不定期で tech talk というカジュアルな社内 LT 会を行っています。
先日、この会で Ruby の Enumerator クラスについてお話しました (個人的に大好きなんです 💖) 。

今回はその内容を本エンジニアブログでもお伝えできればと思います。

 

バージョン情報

この記事のコード例では Ruby 2.7 を用います。

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin18]

 

外部イテレータと内部イテレータ

配列などのコレクションの要素を列挙する仕組みとして イテレータ があります。
これは外部イテレータと内部イテレータに二分できます。

続きを読む

とあるエンジニアのマネフォ的 1日の過ごし方

こんにちは!
マネーフォワード クラウド勤怠』のエンジニアの @bino98 です。

今回は、 マネーフォワードで働くエンジニアの1日の過ごし方 をご紹介させていただきます。
この記事を通して「マネーフォワードで働く」イメージを少しでも持っていただければ幸いです。

 

過ごし方の基となった人物の特徴

この記事の出来事は以下の人物の1日の出来事を中心に、できる限り働き方をイメージして頂きやすくするために、一部内容を再構成しています。

名前は山本貴文(@bino98)。東京都在住。
2019年5月から、マネーフォワードの一員になり半年が経過
マネーフォワードクラウド勤怠を作るメンバの一員
最近子どもが生まれ、家に帰ると子どもが喜ぶ。その姿を観ると、とても癒やされる。

マネーフォワードでは、リモートワークによる勤務も認められています。
今回は出社する場合です。

続きを読む

時間がかかっていた依存パッケージの更新フローをカイゼンした話

こんにちは!
2019年7月に中途入社した @ktmouk と申します。

HRプロダクト領域の開発を担当しています。

アプリを開発するのが好きで、
プライベートでも『Hackaru』という時間を管理できるアプリを開発しています。

今回は初めてブログを書かせていただきます。
本稿では、依存パッケージの更新業務のフローを改善した話を紹介します!

 

依存パッケージの更新とは

HRプロダクト開発チームでは、毎週火曜日〜金曜日に依存パッケージの更新をしています。
Gemfileやpackage.jsonのような、プロダクトで使用しているパッケージをバージョンアップする作業です。
中には脆弱性を修正するような重要な更新も含まれているので、定期的にアップデートするのは大切な作業になります。

 

Dependabotを使用しています。

依存パッケージのバージョンアップには、「Dependabot」を使用しています。
「Dependabot」を使えば、依存しているパッケージの新しいバージョンを検知して自動でプルリクエストを作成してくれます!とても便利。

続きを読む

新卒が社内懇親会での失敗をリベンジした話

こんにちは、2019年新卒の渡辺です。

私たち新卒は、半年前の社内懇親会にて「MFクイズダービー」というゲームを企画し、進行に必要なアプリを開発・運営しました。
しかし、ゲームの進行中にサービスがダウンしてしまい、最後まで終えることができず、散々な結果になりました。

<その時の戦いの記録はこちら>
新卒が社内懇親会アプリを開発したら、障害対応まで経験できた話

前回の反省から『このままで終わることはできない!!』とリベンジをすることになりました。

 

ゲーム名も『超★ウルトラMFクイズダービー』にアップデート

 

基本ルール

  1. 解答者チームと投票者チームに分かれる。
  2. 4択のクイズが出題される。
  3. 解答者チームは投票者チームに分からないように解答する。
    投票者チームは正解する解答者チームを予想し、自分の持ち点からいくらポイントを預けるか決め、投票する。
  4. 投票した解答者チームが正解した場合は預けたポイント x 倍率 の得点を獲得。不正解だった場合は預けたポイントは没収される。倍率は各問題、解答者チームごとに異なる。

この流れを4回繰り返し、総得点が最も多い投票者チームを表彰する、というゲームです。

続きを読む

2020年のマネーフォワード

こちらはMoney Forward Advent Calendar 2019 25日目の記事です。

こんにちは、マネーフォワード CTOの中出(なかで)です。
2019年の振り返りと2020年の抱負を書いてみたいと思います。

 

2019年のマネーフォワードの振り返り

2019年を一言で表すと 拡大 の一年でした。

Advent Calendar 1日目の記事2日目の記事 の通り、2019年のマネーフォワードは将来の事業成長のために積極的に開発組織への投資を行いました。

1月にはマネーフォワード Vietnamで100名体制の開発組織を構築するための開発拠点をオープンし、2月には福岡に続く国内開発拠点を京都に開設、3月にはマネーフォワードの持つデータを元に新たな価値を創造するためMoney Forward Labを立ち上げ、すでに研究者がいくつかの研究を開始しており研究成果が形になってきています。

またエンジニア・デザイナーは1年間で160人規模から280人規模に拡大し、2018年から積極的に採用を始めた新卒エンジニアも40人を超え、外国人エンジニアも増えました。
年齢や性別、地域や国籍を問わないエンジニアのダイバーシティーとエンジニア同士のリスペクトに溢れる開発組織を構築することができました。

多くの優秀で才能と熱意あふれる仲間に恵まれ、プロダクト開発や基盤開発、技術的負債の解消など多くのことに同時に取り組めるようになりました。

 

2019年の社会の流れとマネーフォワード

キャッシュレス化

2019年はQRコード決済の普及や消費増税に伴って実施された「キャッシュレス・ポイント還元事業」によりキャッシュレス化が一気に加速しています。

それに引っ張られるように『マネーフォワード ME』の利用者数の伸びも加速しています。

続きを読む