タグ

ブックマーク / blog.recruit.co.jp (26)

  • 複数TARGETを用いて、単一Xcodeプロジェクトで複数のアプリをビルドする | Recruit Tech Blog

    初めまして。リクルート新卒一年目の大塚悠貴、佐藤万莉、河内友佑です! 新卒研修で、「異なるユーザ層に特化した複数のアプリを、最大限コードを共通モジュール化することで実現する」という課題に取り組んだので、その内容について紹介します。 コードを共有して複数アプリを作成するには大きく以下のような方法が挙げられます。 単一のXcodeプロジェクトでビルドTARGETを複数作成する 複数のXcodeプロジェクトを作成する 今回はビルドTARGETを複数作成する方法を検証したので、ブログではこの方法を採用するにあたり発生した問題とその解決策、およびメンテナンス性を意識した実装について紹介します。 複数TARGETを作成・管理する 複数TAEGETの問題点 複数のTARGETでアプリを作る際は通常大まかに以下のような手順で行います。 ビルドTARGETを複製する 各ファイルにTARGETを設定する ま

    複数TARGETを用いて、単一Xcodeプロジェクトで複数のアプリをビルドする | Recruit Tech Blog
    invent
    invent 2022/11/11
  • 言語の話だけじゃない!アニメーションの重要性/try! Swift参加レポート Day2 | PSYENCE:MEDIA

    言語の話だけじゃない!アニメーションの重要性/try! Swift参加レポート Day2 大島 雅人 2016.03.16 149 18118634 こんにちは。大島です。2016年3月2日〜3月4日の間で行われていたtry! SwiftというSwiftのカンファレンスに参加してきました。私は、スタディサプリ ENGLISHのサーバーサイド兼iOSを担当しておりアプリはSwiftを使用して書いています。プロダクトのリリース当時はSwift1.2でしたが、今ではSwift3.0まで進化しているSwiftの勢いを感じるカンファレンスでした。 今回は、try! Swift参加レポート Day1に引き続き、2日目の様子とセッションの中から個人的に特に印象に残ったプロトタイピングの魔法とProtocol-Oriented Programming in Networkingのセッションをご紹介したいと

    言語の話だけじゃない!アニメーションの重要性/try! Swift参加レポート Day2 | PSYENCE:MEDIA
    invent
    invent 2021/12/27
  • 業務で採用してみたいiOSアプリのアーキテクチャと技術

    はじめに こんにちは、初めまして、iOSアプリエンジニアのtasaiです。この記事は リクルートライフスタイル Advent Calendar 2019 19日目の記事です。私は入社したばかりなので業務で使っている技術についてではなく、業務で採用してみたいiOSアプリのアーキテクチャと技術についてご紹介します。 前提 業務でMVVMでのアプリリニューアルやVIPERでのリアーキテクチャをしてきた経験をもとに、クロスプラットフォーム技術の採用を視野に入れて検討した内容となります。 解決したい課題 モバイルアプリの開発において継続的に改善を行うようなプロダクトでは、以下のような課題があるのは珍しいことではないかと思います。 長年の運用で溜まっていた技術的負債 ユニットテスト/UIテストコードが書きづらい責務分割 そもそも設計方針が決まっていなかったり、複数のアーキテクチャを抱えたりしている A

    業務で採用してみたいiOSアプリのアーキテクチャと技術
    invent
    invent 2021/11/22
  • 「ホットペッパービューティー」美容クリニックでのElasticsearchのユーザー辞書登録による検索改善

    クリニック検索では、Ngramと形態素解析を併用することにより検索結果のヒット数を担保しつつ検索ノイズの増加による悪影響をスコアソートにより軽微なものに抑えています。 施術メニューピックアップのための全文検索では、検索ノイズが少ない形態素解析のみを利用しています。 美容クリニックでの検索における問題 形態素解析では、辞書に含まれている単語の集合に基づいて形態素が認識されます。 Sudachiの辞書において美容医療の専門用語が網羅されておらず、問題が発生します。 形態素解析で専門用語がカバーされていない問題 上記の表の通り、形態素解析では検索漏れが多いです。 例えば、「ダーマペン」は美容医療では人気な単語ですが、Sudachiに搭載されているデフォルトの辞書ではカバーされていないので、形態素として抽出されません。 形態素解析で期待通り認識・分割されない問題 「二重」が「フタエ」でなく「ニジュ

    「ホットペッパービューティー」美容クリニックでのElasticsearchのユーザー辞書登録による検索改善
    invent
    invent 2021/04/23
  • Amazon Elasticsearch Serviceへの移行にかかる調査とLocustを用いた負荷試験 | Recruit Tech Blog

    リクルートの大杉です。 ブログは、2021年2月から3月に弊組織(検索ソリューショングループ)で一緒に働いてもらったアルバイトの塚越駿さんが、今回のアルバイト期間中に実施したことをまとめたものです。 彼には、我々が社内向けに量産している「情報検索API」の内部改善の一環で、Amazon Elasticsearch Service を実サービスで展開するための性能検証を行っていただき、そこで得られた知見を広く共有すべく技術ブログを書いてもらいました。 —ここから塚越さんの記事です— こんにちは、RECRUIT Job for Student 2021に参加していた塚越駿と申します。 記事では期間中に取り組んだ、既存システムのAmazon Elasticsearch Serviceへの移行に向けた調査と、番環境投入のための負荷試験についてご紹介します。 はじめに 改めまして、こんにちは。

    Amazon Elasticsearch Serviceへの移行にかかる調査とLocustを用いた負荷試験 | Recruit Tech Blog
    invent
    invent 2021/04/02
  • Four Keys 〜自分たちの開発レベルを定量化してイケてる DevOps チームになろう〜

    はじめに この記事タイトルに興味をもって読み始めていただいている方の多くは、ソフトウェアエンジニアとしてチームで開発をしていたり、エンジニアリングマネージャーとしてチームビルディングやマネジメントをされている方なのではないかと思います。 実際、この記事を書いている加藤も、リクルートライフスタイルのデータプラットフォームグループ (以前は CETチーム と呼ばれていました) に所属するデータエンジニアとして、データ活用のための基盤開発・運用を行っている一人です。また、担当している社内データプロダクトのプロダクトマネージャーも兼任しています。 記事では、自分の所属している DevOps チームを「イケてる DevOps チーム」にするために取り組んだ内容や気づいた点をお伝えしたいと思っています。 目次 はじめに 「イケてる」DevOps チームってなに? Four Keys とは なぜ Fo

    Four Keys 〜自分たちの開発レベルを定量化してイケてる DevOps チームになろう〜
    invent
    invent 2021/03/31
  • 【Flutter】iOSプロジェクトへのAdd-to-appにおける3つのOptionの比較

    リクルートライフスタイルで「じゃらん」のアプリ開発を担当している桐山です。以前、FlutterUI構築の仕組みについて記事を書きました。今回は既存のiOS/AndroidプロジェクトFlutterプロジェクトを組み込む仕組みである、Add-to-appについて紹介いたします。 既存のiOS/AndroidプロジェクトFlutterを導入したい場合に、プロジェクト全体を書き換えることが容易ではない場合が存在します。その様な場合にFlutterは、Flutterプロジェクトを既存のiOS/Androidプロジェクトに組み込む仕組みを提供しています。その仕組みがAdd-to-appです。 Add-to-appのドキュメントでは、iOSプロジェクトAndroidプロジェクトへのAdd-to-appの方法が紹介されています。iOSとAndroidのAdd-to-appの方法は異なりますが、我

    【Flutter】iOSプロジェクトへのAdd-to-appにおける3つのOptionの比較
  • Airシフトにおけるパフォーマンス改善とリファクタリング事例 | Recruit Tech Blog

    はじめに リクルートテクノロジーズの 辻 健人です. GitHub では maxmellon で活動しています. 今回は,『Airシフト』における パフォーマンス改善とリファクタリングの事例を一つずつ紹介したいと思います. 『Airシフト』とは 『Airシフト』は,やりとりも作成も楽になるシフト管理サービスです. 直感的に操作できるシンプルな画面で,カンタンにシフト作成が行えます. 技術スタックとしては, React/Redux ,チャット機能に WebSocket, SSR やユーザ認証,ファイルダウンロードにBFFアーキテクチャを採用しています. 『Airシフト』はシフト表の作成や管理ができるだけでなく,大きな機能の一つとして 『シフトボード』を活用したチャットを行うことも可能です. 例えば,急用で別のスタッフにシフトを変わってもらうときや,シフトの希望を提出する締め切り前にチャットを

    Airシフトにおけるパフォーマンス改善とリファクタリング事例 | Recruit Tech Blog
    invent
    invent 2020/02/16
  • try! Swift Tokyo 2019でブース出展しました

    こんにちは!じゃらんとAirレジの開発を担当している永井です。 すっかり桜が満開となりましたね。 そんな中、先日行われたtry! Swift Tokyo 2019にリクルートライフスタイルとしてブースを出展しました。 セッションの合間に楽しんでいただけるクイズコンテンツの他、ホットペッパーグルメのキャラクターである「ペパ郎」をプリントしたお菓子などをご用意していました。 try! SwiftSwiftの国際的なカンファレンスということもあり、海外から来られている方々にも多く立ち寄っていただけました。 海外の方々からは「リクルートはリクルーティングの会社なのかい?」と質問されたり、 「そのチョコレートを箱で買いたい」と言われるほどノベルティのお菓子が大人気だったり、、と微笑ましいやり取りも多く発生していました。 ブースに来ていただいた方、クイズに参加していただいた方、当にありがとうござい

    invent
    invent 2019/04/09
  • ホットペッパービューティーコスメをリリースしました

    CETチーム兼ホットペッパービューティーコスメ開発チームの寺下です。 先日 ホットペッパービューティーコスメ という新サービスをローンチしました。 コンセプトは「『似合う』が見つかるコスメ投稿・検索アプリ」で、現在はiOS版のみ配信を行っています。 記事ではホットペッパービューティーコスメ(以下HPBコスメ)のアーキテクチャ・開発チームについて簡単に紹介していきます。 なお、iOSアプリの開発については今回は割愛します。 アーキテクチャ インフラはGCPを利用しています。 GCPを採用した理由としては主に以下の点が挙げられます。 Kubernetes(GKE)を利用して高可用・スケーラブルなインフラを手軽に構築・運用できる点 分析環境(BigQuery)との統合が強力な点 弊社内で運用実績が多くあり、運用のノウハウが確立されている点 また、原則として運用負荷を下げるために可能な限りマネー

    ホットペッパービューティーコスメをリリースしました
    invent
    invent 2019/03/29
  • すぐできる iOS Strong Password and Security Code AutoFill | PSYENCE:MEDIA

    すぐできる iOS Strong Password and Security Code AutoFill koutalou 2018.12.08 59 1342418 この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2018 の投稿記事です。 こんにちは、エンジニアの @koutalou です。 2018年のWWDCでiOS12からサポートされる高強度のパスワードとセキュリティコードの自動入力について発表されました。 Automatic Strong Passwords and Security Code AutoFill - WWDC 2018 - Videos - Apple Developer 便利な機能ですぐ対応できる割にあまり対応しているアプリを見かけないので、紹介したいと思います。ちなみにサンプルコードも用意してます。 kout

    すぐできる iOS Strong Password and Security Code AutoFill | PSYENCE:MEDIA
    invent
    invent 2018/12/08
  • ホットペッパービューティーのAndroidアプリをリプレイスしました

    ビューティ事業ユニットでエンジニアをしている索手です。 1月まではAndroidを担当していましたが、今ではバックエンドを担当しAPI開発を行っています。 今回は昨年行ったホットペッパービューティーのアプリリプレイスについて、Androidチームで採用した技術や実装方針についてお話ししたいと思います。 プロジェクトの背景 ホットペッパービューティーのネイティブアプリは、約6年間、様々な機能追加・変更を経る中で多くの技術的負債が溜まっていました。一方で、事業におけるアプリの重要度は高まっており、今後の更なる成長を見据えると、当時の状態で開発を続けることは困難でした。 そのような背景があり、アプリリプレイスがスタートしました。 プロジェクトの概要 プロジェクトは、「安定かつ高速な開発」を目指し、仕様はそのままにネイティブアプリのコードを全て書き換えるというものでした。ドキュメントや既存のコー

    ホットペッパービューティーのAndroidアプリをリプレイスしました
  • Goのpackage構成と開発のベタープラクティス

    (images: github.com/egonelbre/gophers) こんにちは。 データエンジニアリンググループ(CETチーム)の寺下です。 自分の所属するCETチームでは今まで主にScalaPythonなどを使ってAPIや基盤を実装してきましたが、最近では徐々にGoによる実装も増えてきており、GAE/GKE上で番運用を行っています。 記事ではGoのプロダクトにおいてDDDライクなpackage構成で実装する際の注意点や、汎用的に通用するであろう実装のTipsについて書いていきます。 記事で紹介する例がベストプラクティスだというわけではありませんので、あくまで実装の一例程度に捉えて頂けると幸いです。 Goのアーキテクチャ Goは言語仕様がシンプルかつフォーマッタが強力なため、syntaxレベルでは開発者によってコードの品質がブレにくいというメリットがあります。 しかしなが

    Goのpackage構成と開発のベタープラクティス
    invent
    invent 2018/03/16
  • 「書き直したい」 をグッと抑えて小さな改善を積み重ねよう | PSYENCE:MEDIA

    この記事はRECRUIT MARKETING PARTNERS Advent Calendar 2017の投稿記事です。 こんにちは、2016 年中途入社の nobuoka です。 ソフトウェアエンジニアとしてキッズリーの開発に携わっています。 先日読んだ 『「書き直した方が早い」 は 9 割のケースで間違いだった』 というブログ記事に触発され、最近考えていた 「小さな改善を繰り返すこと」 について書き記します。 意識の話に寄っていて技術的な話ではないですが、是非読んでみてご意見をお寄せいただければと思います。 後半では、実際の製品開発での取り組みも紹介しています。 伝えたいことは一つだけ。 タイトルにある通り 「どうにも手が負えないから新たに書き直したい」 という気持ちに対して、一度それをグッと抑えて小さな改善を積み重ねよう ということです。 背景 : 新しく書き直すか、小さな改善を繰り

    「書き直したい」 をグッと抑えて小さな改善を積み重ねよう | PSYENCE:MEDIA
    invent
    invent 2017/12/18
  • 2017-08-01-lignum

    こんにちは。Lignumの開発を担当している明智と浅井です。 Lignumは今回紹介する配信基盤の名前です。 先日開催されたGoogle I/Oでも多くの新機能が発表されたFirebaseですが、弊社では昨年度からFirebaseを活用した機能開発に取り組んでいます。 今回は、その中でも『Firebaseを活用したアプリプッシュ通知の配信基盤の構築』について紹介したいと思います。 「アプリプッシュ通知の配信基盤」構築の背景 見えてきていた課題 弊社ではこれまで、リクルートグループ横断で利用できる独自開発された配信基盤を利用していました。 しかし、施策が高度化するにつれて 実施できる施策の制限 配信の見立て/結果の振り返りに利用したいデータが不足 といった「弊社独自の業務要件に追いつかなくなってきている」という課題が見えてきていました。 そこで、PDCAサイクルの回せる新たな配信基盤が必要だ

    2017-08-01-lignum
    invent
    invent 2017/08/11
  • 【WWDC2017】Vision.framework のテキスト検出を試してみました【iOS11】 | PSYENCE:MEDIA

    【WWDC2017】Vision.framework のテキスト検出を試してみました【iOS11】 保坂智之 2017.06.13 109 14451139 はじめに こんにちは! リクルートマーケティングパートナーズで iOS アプリの開発を主に担当している保坂です。弊社の井原と共に 6 月 5-9 日に開催された WWDC 2017 に初参加してきました。Keynote では iOS 11 や macOS High Sierra などの発表があり、開発者の一人としてもワクワク感に溢れた1週間になりました。 今回は、iOS 11 で新規追加されたいくつかの Framework の中から Vision.framework という画像処理の機能を提供する標準ライブラリを試してみました。サンプルプロジェクトも用意しましたので、『どんな感じで使えるのかな?』と興味を持っている方に読んでいただける

    【WWDC2017】Vision.framework のテキスト検出を試してみました【iOS11】 | PSYENCE:MEDIA
    invent
    invent 2017/07/27
  • プロダクトチーム ( エンジニア、デザイナー含む ) で保育士体験をしてきた話 | PSYENCE:MEDIA

    プロダクトチーム ( エンジニア、デザイナー含む ) で保育士体験をしてきた話 ku-suke 2017.06.21 259 30199300 こんにちは、プロダクトマネジメントチームの川畑( @ku_suke )です。 担当プロダクトのkidsly(キッズリー)に何人か新しいメンバーが入ってきたということもあり、顧客理解の一環としてチームメンバーで保育士体験をしてきました。今回はキッズリーを初期よりご利用いただいている園に協力いただき、0~5歳の元気いっぱいの子どもたちと1日を過ごしました。 キッズリーとは? kidsly(キッズリー)|保育園と保護者のコミュニケーションサービス 保育士と家族のコミュニケーションが深まれば、子育てはもっと豊かになる。そんな想いから、キッズリーは生まれました。 キッズリーは、保育にかかわる様々な業務を支援しながら、保育園と保護者のコミュニケーションを深める

    プロダクトチーム ( エンジニア、デザイナー含む ) で保育士体験をしてきた話 | PSYENCE:MEDIA
    invent
    invent 2017/06/21
  • 【WWDC2017】iOS開発におけるEmbedded Framework活用法 + ラボノススメ | PSYENCE:MEDIA

    【WWDC2017】iOS開発におけるEmbedded Framework活用法 + ラボノススメ 井原岳志 2017.06.14 84 15292020 こんにちは。井原 (@nonchalant0303) です。スタディサプリENGLISHのiOSエンジニアをやっています。 今回はEmbedded Frameworkを活用したiOSアプリの設計についてご紹介します。 ちなみにですが、2017年6月5日 ~ 9日、アメリカのサンノゼで開催されたWWDC2017に参加してきました。WWDCではKeynoteをはじめとしたセッションの他に、Appleで働く様々な分野のエンジニアとディスカッションをできる『ラボ』というブースがあります。Embedded Frameworkでの設計についていろいろと質問することが出来たので、そこで得た知見も併せてご紹介します。 はじめに 現在、開発しているiOS

    【WWDC2017】iOS開発におけるEmbedded Framework活用法 + ラボノススメ | PSYENCE:MEDIA
    invent
    invent 2017/06/14
  • [Android Architecture Components] Lifecycle, LiveData and ViewModel 詳解 | PSYENCE:MEDIA

    [Android Architecture Components] Lifecycle, LiveData and ViewModel 詳解 Jumpei Matsuda 2017.05.24 155 28194464 こんにちは。daruma です。 Google I/O 2017 で Android Architecture Components をテーマとした以下の3セッションが行われました。 Introduction Solving the Lifecycle Problem Persistence and Offline そのセッションでは Google が 公式に Androidアプリにおけるアーキテクチャの指針と支援ライブラリを提供する ことを発表しました。すでにガイド及びライブラリは公開されており、こちらから試すことが可能です。ただし まだ正式版ではなく、1.0.0-alp

    [Android Architecture Components] Lifecycle, LiveData and ViewModel 詳解 | PSYENCE:MEDIA
    invent
    invent 2017/05/24
  • 仕事用マシンをMacBookProからUbuntuデスクトップに乗り換えて1ヶ月運用してみました | PSYENCE:MEDIA

    Ubuntuのバージョンは16.04を利用しています。 macOSで使っていたツールの乗り換え 乗り換えの検討で一番の悩みどころは「macOSで使っていたあれはUbuntuでできるの?」というところかと思います。乗り換えてから1ヶ月程度経ちましたが、現状は以下に紹介するツール群を使っています。ツール選びにあたっては、前述のk0kubun氏の記事や、Ubuntu Alternatives and Similar Software - AlternativeTo.netというサイトが参考になりました。 [ エディタ ] Visual Studio Code macOSから使い続けていますが、体感ほぼ同じで使用できます。たまにCI環境の構築等でiOSのビルドをする場合は、リモートデスクトップでMacBookProに接続して作業しています。 [ ターミナル ] iTerm2 -> guake グロ

    仕事用マシンをMacBookProからUbuntuデスクトップに乗り換えて1ヶ月運用してみました | PSYENCE:MEDIA
    invent
    invent 2017/02/15