添野紘生 | AI英会話スピークバディ | グロースリード・エンジニア

AI英会話スピークバディのプロダクトチームでグロースやiOSエンジニアリングをしています

添野紘生 | AI英会話スピークバディ | グロースリード・エンジニア

AI英会話スピークバディのプロダクトチームでグロースやiOSエンジニアリングをしています

最近の記事

  • 固定された記事

自己紹介|何やってる?+過去のインタビューや登壇など

こんにちは添野紘生といいます😊 AI英会話アプリの「スピークバディ」で、インターンとして大学の3年生からジョインし、その後社員として入社して2024年現在9年目です。結構社内でも古株な感じになってきました😌 エンジニアリング グロースハック ユーザー分析 WEBマーケティング 事業戦略 など幅広く携わってきました! 今は、グロースやエンジニアリングなど「プロダクトの中身方面」に集中的に取り組んでいます。 すこし恥ずかしいですが、 自己紹介を兼ねて、過去のインタビ

    • 「バディチャット」の開発秘話のnoteの最終章がリリースされました 🥳 開発陣のバディチャットに対する拘りが綴られています。 ご興味がある方はご一読ください🙌 https://note.com/speakbuddy/n/nccbb5fdcf588?sub_rt=share_pw

      • 最新生成AIを活用したスピークバディの大人気機能「バディチャット」の開発秘話第二弾の記事がリリースされました🥳 https://note.com/speakbuddy/n/n4f3a6a1379f4?sub_rt=share_pw

        • スピークバディは「勝手にゲーミフィケーション大賞2023」で最優秀賞を受賞させていただきました。 先日、受賞に際して取材をお受けし、その時の記事がリリースされたのでこちらで共有させていただきます🥳 https://note.com/jgamifa/n/nf1930fcd3dd4?sub_rt=share_pw

        • 固定された記事

        自己紹介|何やってる?+過去のインタビューや登壇など

          私を含め開発チーム全員が出せる全てを出し切った、スピークバディの生成AIとの対話機能「バディチャット」の開発秘話note第一弾がリリースされました🥳 ご興味がある方は是非ご一読ください🙌 https://note.com/speakbuddy/n/n9ae68e5d8623?sub_rt=share_pw

          私を含め開発チーム全員が出せる全てを出し切った、スピークバディの生成AIとの対話機能「バディチャット」の開発秘話note第一弾がリリースされました🥳 ご興味がある方は是非ご一読ください🙌 https://note.com/speakbuddy/n/n9ae68e5d8623?sub_rt=share_pw

          SwiftUIで吸い込みアニメーション(ジニーエフェクト)

          概要今回はSwiftUIで「吸い込み/吐き出し」の様なアニメーションを実装する方法をご紹介します。 Macをお使いの方にはお馴染みの「ジニーエフェクト」というやつです! スピークバディではこんな感じで使用しています。 コード紹介まず、UIKitでジニーエフェクトを再現できるBCGenieEffectという、とても凄いパッケージがあるのでこちらを導入してください。 これをSwiftUIで使える形にextensionを定義していきます。 実装 extension Vi

          SwiftUIで吸い込みアニメーション(ジニーエフェクト)

          サブスクリプションの無料トライアルをハックした話

          概要今回はエンジニアとしてではなく、 グロースリードとして記事を書かせていただきます。 お話しすることは、スピークバディでサブスクリプションの無料トライアルの仕組みを大きく変更し、成功させた事例です。 今回紹介する新しい仕組みを導入する前 スピークバディのインストールからサービス利用開始の流れは以下のようになっておりました。 当時のサービスが抱える最大の課題は、 「ユーザーが無料トライアル後に意図せず課金されてしまうことを恐れ、サービスの肝心な中身に触れずに離脱してしま

          サブスクリプションの無料トライアルをハックした話

          SwiftUIで子Viewのframeやsize, GeometryProxyを取得する

          概要基本的に細かいframeやサイズなどを親Viewが認知しなくてもサクサクUI構築できてしまうSwiftUIですが、複雑なアニメーションを再現したいときなど、時折子Viewのframeやサイズ情報が欲しくなることがあります。 そんなニーズに便利なextensionをご紹介します! コード紹介実装 extension View { func geometryReader(in coordinateSpace: CoordinateSpace, _ action: @e

          [SwiftUI] iOS16以下でもonChange(of:initial:_:)が使いたい!

          概要SwiftUIで値の変更を監視する便利なメソッドonChange スピークバディプロジェクト内ではGeometoryReaderと併用して、子ビューのframeを取得したりするのに使用しています! iOS16以前のonChangeではViewの初期表示時(値変動前)にonChangeのクロージャ内の処理が走ることはありませんでした。 なので、よくこんなふうにonAppearと併用する形でコードを書いていました。 onAppear { action(value) }

          [SwiftUI] iOS16以下でもonChange(of:initial:_:)が使いたい!

          SwiftUIで数値変動のアニメーション

          概要数値の変動にアニメーションを追加してみます。 スピークバディアプリ内では例えばこんなところに使用しています。 ※数値が 0 → 7 へと変動する部分のアニメーションです コード紹介実装 Binding<Int>に対してエクステンションを定義します。 extension Binding where Value == Int { func animate(to target: Int, from current: Int? = nil, duration: TimeI

          SwiftUIでtouchDownとtouchUpを検知する

          概要ユーザーがボタンを触り始めたことを検知するtouchDownと ボタンから指を離したことを検知するtouchUpをSwiftUIで検知する方法です。 例として、スピークバディアプリ内ではこの様に使用しています。 コード紹介SwiftUIで提供されているButtonStyleを使用します。 実装 struct SBButtonStyle: ButtonStyle { let onTouchDown: () -> Void let onTouchUp: () ->