iOSアプリ内課金の設計指針

こんにちは。
マネーフォワードクラウド確定申告アプリiOSエンジニアの佐藤です。
本稿ではマネーフォワードクラウド確定申告に実装したiOSアプリ内課金の設計指針について紹介します。

はじめに

皆さん、iOSアプリ内課金という単語はご存知でしょうか。
iOSアプリ内課金とは、ユーザーが利用するアプリ内または App Store から一連の購入処理を踏むことで、iOSアプリに様々な追加コンテンツやサービスを提供できる機能です。

iOSアプリ内課金の種類

主にアプリ内課金には4つのタイプが存在します。Apple 公式サイトではこちらで説明されています。
弊社確定申告アプリにおける課金タイプは、追加コンテンツを解約するまで利用できる「自動更新サブスクリプション」形式を採用しました。
そのため本稿は自動更新サブスクリプションに少しフォーカスを当てた紹介となります。

続きを読む

社内勉強会カレンダーのご紹介

こんにちは。
マネーフォワードのVPoE、渋谷(ryoff)です。

多くの優秀なエンジニアの方々に入社いただき、プロダクトラインナップも増えてきました。

一方、「GraphQL使ってるプロダクトって他にもありますか?」だったり、「PdMやりたいのでINSPIREDについて語りたいんですけど」、みたいな会話をSlack上でちらほら見るようになってきました。

プロダクトラインナップの増加に伴い、Slack の部屋数も増えており、今では3100を超えています(2021年3月現在)。

実は同じ技術を使っているのに交流がなかったり、実は同じ思いを持っているのに気づけていなかったりするのはもったいないな、と思ったため、その一助になればいいなと思い、社内勉強会カレンダーを作ってみました!
運用開始して半年ほどたち、社内でもかなり浸透してきたので、今回はそのご紹介です。

続きを読む

150超のAWSマルチアカウント環境における「AWS SSO」の設定をTerraform管理に移行した話

こんにちは。マネーフォワードのgotoken(@kennygt51)です。

突然ですが、マルチアカウントAWS環境の管理業務をおこなっている皆さん、AWS SSOやってますか??
当社のAWS環境の改善活動に取り組む中で、AWS SSOの便利さにすっかり虜になってしまいました。
今回の記事では僕が業務で取り組んだ『150超のAWSマルチアカウント環境における「AWS SSO」の設定をTerraform管理に移行した話』について紹介します

AWSアカウントへのアクセスコントロールの歴史

AWS SSOやTerraform管理の話をする前に、当社のAWSアカウントへのアクセスコントロールの歴史を紐解いてみましょう。
 

はじめてのAWS SSO

2020年の初め頃、当社のAWS環境にAWS SSOがはじめて導入されました。それ以前は、踏み台用のAWSアカウントにのみIAMユーザを作成し、アクセスしたいAWSアカウントのIAMロールにスイッチする方式を採用していました。

続きを読む

Slackのチャンネル名を管理者以外でも変更できるようにしてみた

こんにちは。
マネーフォワードでコーポレートエンジニアリングを担当している 下村 です。

コーポレートエンジニアって?という方は こちら をご参照下さい。
誤解を恐れず言えば、社内環境をITでハックする人 といった職種です。

さて、マネーフォワードではチャットツールとして、Slackを使っているのですが、
地味に困る、「チャンネル名変更」オペレーションについて、 Slackチャンネルを一般権限の方 でも変更できるようにしてみたのでその内容をご紹介します。

そもそもSlackってチャンネル名を自分で変えられないの?

本題に入る前に、「そもそもSlackってチャンネル名を誰でも変えられないの?」って思われた方も結構多いのではないかと思います。(私もそうでした)

続きを読む

Goのテストに使える手作りモックパターン

こんにちは。
京都開発拠点でGoエンジニアをしています @yoskeoka です。
Goを中心技術として性能改善やプロダクト間を横断するような機能の設計、実装を行うKTAチーム (京都開発本部 テクニカルアーキテクトチーム) 所属です。

突然ですが、皆さんはGoでテストを書いているでしょうか。
我々はテストを書くことが中長期的なスピードアップに繋がると信じて日々テストを書くようにしています。

KTAではGoの実装をする際にClean Architectureの考えに基づいたpackage分けを行っていますが、packageを分けたり、インターフェースを定義したりとしていくと、テストを書くのが難しい部分というのが出てきます。
そんな場合に使えるモック作りテクニックを今回は紹介したいと思います。

 

Clean Architectureはテストしやすくなると言うが

Clean Architectureを実践するにはDIP: Dependency Inversion Principle (依存性逆転の原則) に従って、ビジネスロジック層はインターフェースに依存するように実装していきます。
そして、インターフェースを通じてデータアクセス層などと繋ぐことで、お互いを疎結合にしておくことができるという実装方法です。
疎結合なので、例えばデータアクセス層でパフォーマンス改善、冪等性の担保などといった修正を加えても、ビジネスロジック層のコード修正が生まれない、分割されているので個別にテスト可能といったメリットがあり、実装するコードが大規模になる程、メリットが活きてきます。

続きを読む

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

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

CTOの私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、エンジニアブログに公開したいと思います。

前回はこちら:マネーフォワードCTOが考えていること(2020年9月)

 

目次

  • エンジニア採用と働きやすい環境づくりについて
  • スマートデバイス推進グループの発足と技術顧問の就任について
  • Golangもっと進めます

 

エンジニア採用と働きやすい環境づくりについて

1.グローバルエンジニア

21年入社の新卒エンジニアは外国籍メンバーが大幅に増え、ベトナム、インド、台湾、中国、マレーシア、インドネシア、タイなど、多様な国と地域からの採用が実現しています。海外新卒採用は日本語能力を必ずしも重視しない方針にシフトし始めているため、優秀なエンジニアを採用できるチャンスが大きく広がっています。これまではベトナム出身者が大部分でしたが、今後はインドを中心に他の国の出身者の割合も拡大することを想定しています。

続きを読む

エンジニアリング + 技術広報 = ユニークキャリア

これはなに?

今日はぼくがマネーフォワードという会社に入社しておよそ1年たち、今年から始まる新たな挑戦の紹介と挑戦によるキャリアパスの話し、そして今後の展望を語らせてもらおうと思いました。

新しい挑戦がほんの少し他人とは少し違う、ユニークなキャリア形成に繋がるということで個人としてもマネーフォワードという会社としてもチャレンジングなことをしようとしている足跡を残すことに意味があると考えたのでこの記事を書こうと考えました。

で、新しいチャレンジってなんなの?

ぼく、ことluccafort は 2021年3月からTech Enhancement Group(通称TEG)の技術広報を担当することになりました!🎉🎉🎉

TEG is なに???

TEG設立の経緯は社内ドキュメントにしっかり残っていました、こういうことがSlackで流れてしまうのではなく、ドキュメントとしてしっかり残っているのはマネーフォワードという組織のよいところですね!

ある日、神は言った。

神 「 全体的にエンジニアがもっと力出す上でのサポートに全然リソース割けてなさすぎじゃ? 」

(つд⊂)ゴシゴシ

(;゚д゚)‥‥マジ???

個人名が入っていたところを神にリネームした以外は原文のままです。

続きを読む