ジモティー Tech Blog

https://jmty-tech.hatenablog.com/

ジモティー Tech Blog

フィード

記事のアイキャッチ画像
ジモティーエンジニアのビジネスとの関わり
ジモティー Tech Blog
お久しぶりです。 バックエンドのチームで活動している阿部です。 前回投稿からおよそ2年、前回の時にはAndroidエンジニアとして活動していましたが、1年ほど前にバックエンドのチームへコンバートし現在ではRuby on Rails を中心としてバックエンドの領域で活動しています。 思えば、iOSエンジニアとして入社してさまざまな領域での経験をさせてもらえていますね。 今回は、少し毛色を変えてジモティーエンジニアの現在のビジネスとの関わりについてお話ししていきたいと思います。 こちらの記事でビジネスと近い距離で要件や仕様に関われるというお話をしていました。 現在ではエンジニアもビジネス側としてプ…
18日前
記事のアイキャッチ画像
Terraformプロジェクトの構造を考える
ジモティー Tech Blog
こんにちは! ジモティーにてインフラ開発・運用を担当している斎藤です。 ジモティーでは主にAWSを活用してシステムを作っているのですが、分析基盤としてBigQueryを利用するなど、一部の用途でGoogle Cloudも活用してきました。 今回、BigQueryにリアルタイムでログを蓄積していく必要があり、APIサーバなどのコンピューティングリソースもGoogle Cloudに構築する必要性が出てきました。 Google Cloudでインフラを管理するなら将来的な拡張も見据えてやはりTerraformか、、、? という考えに至り、実際にTerraformプロジェクトを1から立ち上げてみましたの…
5ヶ月前
記事のアイキャッチ画像
Androidアプリのマルチモジュール化
ジモティー Tech Blog
はじめに 初めまして、ジモティーで Android アプリを担当している谷です。 最近マイクラにハマってしまい、やることが無限すぎて困っています。 今回は弊社の Android アプリをマルチモジュール化したのでそのお話をしたいと思います。 導入の背景 まずは弊社の Android アプリの現状の構成について説明します。 弊社の Android アプリは MVVM + CleanArchitecture を取り入れ、3層のレイヤードアーキテクチャで構成しています。 Presentation 層 Domain 層 Data 層 (Infra層) 上記を1つのモジュール内で管理しており、各層はパッ…
8ヶ月前
記事のアイキャッチ画像
【iOS】広告の事前読み込みチャレンジ
ジモティー Tech Blog
はじめに どうも。 ジモティーでiOSアプリ開発チームのマネージャーをやらせてもらっている、ていです。 前回の記事で弊社のiOSアプリにアーキテクチャを導入した過程の計画編をお届けしたので順番的には導入編をお届けするのが筋かと思いますが、気分が乗らないので少し前に広告の取得表示改善に取り組んだ話をしようと思います。 広告の課題 弊社の広告は所謂アドネットワークから配信される広告をSDKを通じてアプリに表示させるよくある手法を取ってるのですが、課題はたくさんあります。 私自身ジモティーに入社して7年目を迎えておりますが、この7年は広告(SDK)との戦いの歴史だと言っても過言ではないと自分では思っ…
10ヶ月前
記事のアイキャッチ画像
CodeBuild始めました
ジモティー Tech Blog
ジモティーでインフラとバックエンドを担当している鈴木です。最近は貝出汁ラーメンをよく食べてます。美味しい。 ジモティーにCodeBuildを導入しましたので、背景や工夫した点などを紹介します。 CodeBuildとは AWS CodeBuildは、AWSが提供するフルマネージド型のビルドサービスです。このサービスを利用することで、ソースコードのビルド、テストの実行など、ビルドプロセスを自動化することができます。 サーバーレスなサービスであり、ビルド実行の度に新たな環境が自動的に作成されるため、ユーザーは事前にビルドサーバーを準備しておく必要がありません。 背景 ジモティーでは、Rails、Ne…
1年前
記事のアイキャッチ画像
openapi.ymlのコンフリクト解消術
ジモティー Tech Blog
ジモティーでサーバサイドとインフラを担当している熊谷です。 今回はエンジニアグループ内で問題視されていた、openapi.ymlファイル競合(コンフリクト)問題を解決した事例についてご紹介します。 ジモティーのAPI開発 ジモティーのAPI開発では、仕様の共通化を目的としてOpenAPI を導入しています。 OpenAPI は公式ドキュメントでREST APIのためのAPI記述形式として説明されており、定義ファイルをYAMLやJSONで記述することができるものです。 定義ファイル編集時はOpenAPI の GUI 定義エディタとして提供されているStoplight Studio ( バージョン…
1年前
記事のアイキャッチ画像
Google Search Consoleでsitemap.xmlの検出URL件数が0件になる問題を解決した話
ジモティー Tech Blog
こんにちは、ジモティーエンジニアチームの山口です。 主にフロントエンド面を担当しております。 現在はジモティーWeb版のフロントをNext.jsに移行する開発を日々進めています。 今回は、フロントエンドとは直接関係ない話ですが、SEO対策の一環として行なっていた作業の中で遭遇した問題についてご紹介します。 問題の概要 ジモティーではGoogle Search Consoleから、Railsで生成したsitemap.xmlファイルとそのindexファイルをいくつか登録しています。 sitemap_index.xml ├── sitemap_1.xml ├── sitemap_2.xml └── …
1年前
記事のアイキャッチ画像
Danger のコマンドインジェクション問題を発見して修正した
ジモティー Tech Blog
ジモティーでサーバサイドとインフラを担当している吉田です。 この前、初めて献血に行ってきました。直前の検査で手汗に気づいたスタッフから「初めてで緊張されていますか?今ならまだ止められますよ。」と声をかけられたのが、今年一番緊張した出来事です。2023年はいろんな新しい事にチャレンジする年にしたいと思います。 さて、今回は Danger の問題を発見し、報告および修正した事例を紹介します。Danger には JavaScript 版や Swift 版もあるのですが、ここでは Ruby 版について記載します。また、Danger のメンテナである Orta Therox 氏には、公開の許可を頂いてい…
1年前
記事のアイキャッチ画像
iOSアプリのスクロールヒッチとハングに関して
ジモティー Tech Blog
こんにちは、ジモティーでiOSエンジニアをしている加藤です。 今回はジモティーiOSアプリのスクロールヒッチとハングに関して書きたいと思います。 目次 前提 背景 お手軽おすすめ調査方法 調査結果と改善案 まとめ 前提 スクロールヒッチとは アプリをスクロールする際に、なめらかなアニメーションにならず飛び飛びになってしまう現象のこと ハングとは ユーザーが何かしらの挙動(ボタンをタップなど)をした後、Viewの更新に250ミリ秒程度以上の遅れが生じること。その遅れの間ユーザーはUIを操作できない。 背景 ジモティーのiOSアプリを触ってみると少しばかりアニメーションがカクツいてしまうということ…
1年前
記事のアイキャッチ画像
ジモティーのエンジニア組織の特徴
ジモティー Tech Blog
こんにちは。 ジモティーのエンジニア部の執行役員をしている鈴木です。 今回の記事ではジモティーのエンジニア組織の特徴を紹介したいと思います。 下記に記載しているのは採用の面談のときにもよくお伝えしている内容で、我々がどういう考えで何を大切にしたいと思っているか、その結果生まれた今の組織の特徴です。 これをお伝えするのが弊社への入社を検討していただくうえで一番重要と考えています。 実際、弊社への入社を考えていただく過程でこのテックブログをお読みになっていただくこともあると思いましたので、この場にてアウトプットさせていただく運びになりました。 それでは行きましょう。 前提 -バリュー いきなり各論…
2年前
記事のアイキャッチ画像
社内アプリを Flutter で開発して感じたこと
ジモティー Tech Blog
iOS チームの池沢と申します。 ちなみに鯉党です。来季から新井監督が指揮を執る事になりましたね!どんな野球をするのか、今から楽しみです! 野球の話はさておき、つい先日まで私は Flutter を用いた業務効率改善のタスクを行っていましたので、その時のお話を書こうと思います。 アプリエンジニアにとって Flutter はホットワードだと思いますので、実際の業務として扱った所感として皆様のお役に立てたらと思います。 背景 社内であるプロジェクトが立ち上がり、その時「簡単な入力だけでジモティーに投稿できるような、簡易投稿機能が欲しい」という話が出ました。 またお話を聞いていくと、その投稿ごとに出品…
2年前
記事のアイキャッチ画像
Androidでテスト駆動開発
ジモティー Tech Blog
自己紹介 Androidエンジニアの坂本です。 Android未経験で3月末に入社して約半年になります。 入社前は、完全未経験の状態からiOSの勉強を独学で1年ほどやった程度。 そこから初めてジモティーのインターンでAndriodをすることになり今に至るといった感じです。 課題 ジモティーでは既存のテストコードはあるものの、工数だったりスピード感の兼ね合いでテストコードが書けていないこともあります。 今回はテストコードのメリットを確認しながら、簡単な機能をテスト駆動開発してみます。 テストコードのメリット 仕様書になる テストコードを見ると何をしているのか分かる 無駄な開発時間を短縮出来る コ…
2年前
記事のアイキャッチ画像
Railsバージョンアップに学ぶフレームワークアップデートの進め方
ジモティー Tech Blog
自己紹介 お久しぶりです。ジモティーで2020年4月からサーバサイドエンジニアをしている水上と申します。 早いもので入社3年目となり、日々案件開発と格闘する日々を送っております。 まえがき 入社3年目となり、大きめの案件開発に携わることも増えてきたので、少し前に実施したRailsのバージョンアップについて記載致します。 Rails バージョンアップ 今回のバージョンアップ前の弊社のRailsは5.2.6でした。 最近Rails 7が発表され5.2系のサポートが今年6月までで切れてしまうとのことで今回のアップデートを実施した運びとなります。 作業内容 バージョンアップ先選定&バージョンアップ ア…
2年前
記事のアイキャッチ画像
ANR調査とその対策のお話
ジモティー Tech Blog
はじめに お久しぶりです。 Androidチームで活動している阿部です。 前回投稿からおよそ1年、iOSでビルド速度の改善など様々な経験を積んで、Androidへコンバートしています! 今回は、Androidアプリのパフォーマンス指標としてしばしば話題に上がるANR(Application Not Responding) についてお話しできればと思っています。 弊社でもこのANRをAndroidチームが追うべきKPIの一つに設定しているのですが、昨年の10月あたりに上昇トレンドになっており問題になっていました。 調査方法と調査結果からの仮説 調査 Androidのdeveploper向けのドキ…
2年前
記事のアイキャッチ画像
ジモティー Android チームの課題について
ジモティー Tech Blog
はじめに Androidエンジニアの林です。 ジモティーのサービスも10年を超え、昔のコードがまだまだ存在しており、定期的にリファクタを行なっています。 そこで現在チームが抱えている課題をいくつか紹介したいと思います。 まだまだJavaのコードがある 新規画面はKotlinで書くことがルール化されているのですが、昔からあるような主要画面は全てJavaで書かれていました。 2021年はその主要画面を全てリファクタするという目標を掲げほぼKotlin化することができました。 ただあまり改修が入らない画面や、色々な画面から使われている大規模なModelクラスなどは、なかなかKotlin化できずまだ手…
2年前
記事のアイキャッチ画像
バッチ処理をEC2からFargateへ移行した
ジモティー Tech Blog
インフラエンジニアの佐藤です。 今回はEC2上で実行していたバッチ処理をコンテナ上で実行させるようにしたのでその話を書いていきます。 コンテナ化するにあたりマネージドサービスを活用してサーバレスに運用していきます。 利用したサービスや移行にあたっての問題、活用事例を紹介していきます。 背景 用途を分けて2台のバッチサーバで運用していましたが、Rubyのアップデートを始め各種ミドルウェアの更新をする度に、新しいAMIを作成してバッチサーバの入れ替え作業を実施していました。 AMIを作成する時間が長かったり、入れ替えに伴う工程が多かったりといくつかの負債がありコンテナを導入することで運用コストを下…
2年前
記事のアイキャッチ画像
データ設計と向き合う
ジモティー Tech Blog
サーバサイドエンジニアの坂根です。 最近某企業から販売されるウイスキーの価格改定が発表されましたね。 国産ウイスキーが転売されることなく、安定供給されることを切に願います。 さて、今回はデータ設計で気をつけていることについて話していきます。 何を大事にしているか ヒトコトで言ってしまうと、現実に忠実であることです。 システムのデータと現実は、しばしば対になります。 そしてシステムの関心事が増えると、現実に沿ってデータを増やします。 現実に反するマジカルな設計になっていると、データを増やす際に歪な形で積み上げていくことしかできず、最終的にはジェンガのように崩れてしまうのです。 現実に反するマジカ…
2年前
記事のアイキャッチ画像
ジモティーのフロントエンドをNext.jsに移行していくという話
ジモティー Tech Blog
どうも鈴木です。好きなプレインズウォーカーは初代ガラクです。 最近スタンダードでは緑単が強かったみたいですが、新弾出てどうなるんでしょう。 それはさておき、今回はジモティーのフロントエンドをNext.jsに移行していくという話を書きます。 背景 ジモティーは今年でリリース後10年を迎え、その間、Webブラウザ版のジモティーはモノリシックなRailsアプリケーションとして開発を継続してきました。 当然ながら技術負債の蓄積はさけられず、特にフロントエンドの生産性の低下が顕著でした。 まず、以下の理由でフロントエンド単体で見た時に生産性が悪くなっていました。 デザインガイドライン整備前の無秩序なCS…
3年前
記事のアイキャッチ画像
リリース作業をかんたんに! git-pr-release + Google Apps Script + Ruby スクリプト + GitHub Actions によるリリース作業改善の取り組み
ジモティー Tech Blog
ジモティーでサーバサイドとインフラを担当している吉田です。 前回は ISUCON10 に参加した話を投稿しました。今年もちょうど ISUCON11 を終えたばかりですが、残念ながら予選敗退となりました。ISUCON への参加はウェブエンジニアとしてのキャリアを見つめ直すとてもよい機会で、来年こそは決勝に進みたいと思っています。 さて、今回はジモティーのサーバサイドで1年ほど運用している、リリース作業の一部自動化の取り組みについて、背景から実施までをご紹介します。 従来のリリースフローとその課題 改善 事前準備 KPT での提案 変更後 git-pr-release Google Apps Sc…
3年前
記事のアイキャッチ画像
ジモティーのフロントエンド事情
ジモティー Tech Blog
初めまして。 2020年末からジモティーでフロントエンドエンジニアとして開発している山口です。 今回はジモティーのフロントエンド事情について紹介します。 ジモティーフロントエンドの現状 現在のジモティーのフロントエンドはRailsのAction Viewを用いて jQuery で Javascript 周り(一部のページの一部の DOM に対して jQuery 代替として Vueも利用) Rails の decorator でフォーマットして Haml でマークアップ Sass でスタイル付け といった構成になっています。 しかしサービスの規模が大きくなってきたこともあり、どのidやclass…
3年前
記事のアイキャッチ画像
ジモティーのUI/UXに関する取り組みについて🧸
ジモティー Tech Blog
ジモティーエンジニア紅一点のnaruです🧸iOSチームで開発を行っています。 最近は自粛で気軽に外に行けないこともあり、自分の所有する車を擬人化したりなどしておうち時間を過ごしたりしてます🧸 前回は↓こんな記事を書いております。 jmty-tech.hatenablog.com 今回もデザイン関連についての話をしたく、UI/UXに関して自社で行っている取り組みの一部を紹介しようと思います。 まず、UI/UXに関するコミュニケーションは今年に入ってからより活性化するようになりました。 というのも、 会社全体のチーム編成や考え方の見直しや、 ジモティーの根幹のDesignSystemの見直しについ…
3年前
記事のアイキャッチ画像
AndroidのローカルDBをSQLiteからRoomに置き換えてみた
ジモティー Tech Blog
はじめに はじめまして。ジモティーに2021年1月からAndroidアプリエンジニアとしてい働いている谷です。 今回はAndroidアプリエンジニアとしてローカルDBをSQLiteからRoomに置き換えた話をさせていただければと思います。 Roomとは 置き換えの話に入る前にさらっとRoomについて説明したいと思います。 RoomとはGoogleが推奨しているSQLiteのORMです。 SQLiteHelperの作成やCursorの操作などめんどくさい処理を一手に引き受けてくれます。 実装も非常にわかりやすく、3つのコンポーネントを作成するだけでローカルDBの構築が可能です。 Entity D…
3年前
記事のアイキャッチ画像
弊社iOSアプリにアーキテクチャを導入してみた ~計画編~
ジモティー Tech Blog
はじめに サーバサイドチームに所属している丁(てい)です。 前回の記事で弊社のiOSアプリにアーキテクチャを導入する前の状況とアーキテクチャを導入してどう変わったのか?をスーパーざっくりご紹介させていただき、その記事を皮切りにアーキテクチャ導入過程の紆余曲折記事を順番に書いていくことを予定していたのですが、その後全く気が向かず長いこと放置していました。 4月に入り気候も少し暖かくなってきたこともあり気が向いてきたので、本日はアーキテクチャ導入当初のお話をもう少し詳しくお話しできればと思いますので、気が向いた方は暫しの時間お付き合いいただけますと幸いです。 導入計画の策定 アーキテクチャを導入し…
3年前
記事のアイキャッチ画像
学生プログラマと社会人エンジニアの違いについて
ジモティー Tech Blog
自己紹介 はじめまして。ジモティーで2020年4月からエンジニアをしている水上と申します。 前項を担当した阿部と同じく新卒での入社をいたしました。 学生時は情報システムを専攻しており、ジモティーには一月ほど実務インターンを経て入社いたしました。 いくつかインターンを経験したのですが、その中でも、人間関係が非常によく、意見の言いやすい環境が非常に魅力的でした。会社説明会時に現弊社取締役が述べた 「うちに嫌なやつはいない」 そんな言葉を体現している労働環境に惹かれ入社する運びとなりました。 まえがき 実際に入社してから1年が経とうとしていますが、いろいろなことを経験させていただきました。 私の担当…
3年前
記事のアイキャッチ画像
新卒エンジニアでも貢献できることはある
ジモティー Tech Blog
ジモティーとの出会い 初めまして。iOSチームで開発を行っている阿部と申します。 本日は「新卒のエンジニアでも課題を克服することで、会社の成長に貢献できる」ということを体験談を元にお話しできればと思っています。 (連続して未経験者から・・・という記事が続いてることは目を瞑っていただきたいです🙇‍♂️) 自分は元々、北海道のとある工業大学で「情報技術を使って地元の観光を盛り上げよう」という研究を行っていました。この時点でお気づきの方もいるかもしれませんが、自分は地元が大好きです! 就職活動ではその地元に貢献できるようになるために、自分のスキルを高める会社を探していました。 そんな時に所属していた…
3年前
記事のアイキャッチ画像
営業職からエンジニアになり1年で年間表彰された話
ジモティー Tech Blog
ジモティーへの入社理由 初めまして! webエンジニアをしている岩間です! 今日は「営業職から未経験でエンジニアになり、どんな過程を経て年間表彰することができたのか」についてお話しできればと思います。 さて、そもそもなんでエンジニアになったの?という話なんですけど、僕は新卒でベンチャー企業に入り、そこで営業をしていました。 営業として仕事を続けていたのですが、文系卒でエンジニアになっている人が意外と多いという事を知り、「自分でwebサービス作れるようになったら面白そうだし、チャレンジするなら若い方がいいだろう」という思いでエンジニア転職に踏み出すことに。 複数社から内定を頂いていたのですが、最…
3年前
記事のアイキャッチ画像
ジモティーで未経験からエンジニアを始めた話
ジモティー Tech Blog
はじめに こんにちは、ジモティーでAndroid開発をしている林と申します。 エンジニア未経験でジモティーに入社し、もうすぐ2年近くが経とうとしています。 ここでは未経験で入社した者がどのようにプログラミングの実務をこなして、他チームと案件に携わっていったかのプロセスをご紹介できたらと思います。 ※未経験の記事を書いていて大変恐縮ですが、ジモティーでは現在経験者の方優先で採用活動を行っております。 入社前のスキル まず前社では主にセールスフォースを使ったデータ管理や資料作成、エクセルのマクロ作成などで少々プログラミングを行った程度でした。 マクロ作成からプログラミングに興味を覚え、その時Pyt…
3年前
記事のアイキャッチ画像
iOSのデザイン周りの開発と改善について🧸
ジモティー Tech Blog
ジモティーエンジニア紅一点のnaruです🧸 iOSチームで開発を行っています。 軽い自己紹介 絵や漫画を描いたり車でドライブすることが好き、 個人でアプリを作ったりなども -> wantedly:iOSDCにてデザイン関連の登壇などをしたり、個人アプリの紹介など書いてます -> Qiita:イラストあれば理解しやすいよねをモットーにたまーに書いてます(最近書いてない..) 話すテーマ 🌼 iOSのデザイン周りの開発について 好きなことが講じてデザイン周りにも興味があるということで 今回はまだまだ課題のあるiOSチームのデザイン周りの開発について、 具体的には私が入社してからの約2年間でどのよう…
3年前
記事のアイキャッチ画像
インフラ構成とデプロイ事情
ジモティー Tech Blog
はじめに はじめまして、サーバーサイド/インフラあたりを見ているエンジニアの佐藤です。 ここまでインフラ関連の話があまりなかったようなので弊社のインフラ構成とデプロイ事情についてご紹介します。 インフラ構成 まずはデプロイ事情の前にざっくりとしたインフラ構成からです。 弊社では主にAWSを利用しています。 簡単な構成は下記図の通りとなっています。 他のマネージドサービスやGCPも利用している部分はありますが、今回は割愛させていただきます。 Web サービスが稼働しているサーバで、NginxやRuby on Railsが動作しています。 AZ2つにそれぞれ用意しており、AutoScalingを用…
3年前
記事のアイキャッチ画像
サービス成長との付き合い方
ジモティー Tech Blog
はじめに サーバサイドとAndroidネイティブアプリの開発を兼務している坂根です。 webアプリ開発を行うエンジニアと聞くと、 要求された機能を実装する つまりディスプレイと睨めっこしながら黒い画面に文字をタイプし続けるコーディングが中心のお仕事、と考えられている方もいらっしゃると思います。 しかし、私は なぜ開発をするのか 開発をする目的は何か 背景の理解を大事にして働いています。 皆さんの身近にいるエンジニア、想像するエンジニアは、どのような働き方をされているでしょうか? 最近、背景の理解を大事にしていないエンジニアが案外多いのではないかと感じています。 今日は背景の理解を大事にするとは…
3年前