タグ

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

  • リクルートリファクタリングコンテストを開催しました

    HOT PEPPER Beautyのアプリ開発チームでTechLeadをしている中里です。 こちらのブログで告知させていただいた通り、3/20にリクルートリファクタリングコンテストを開催しました。今回は当日の様子を紹介したいと思います。 リクルートリファクタリングコンテストとは リクルートリファクタリングコンテストは、HOT PERPPER BeautyのAndroidアプリを題材としたソースコードを、チームでリファクタリングしていき制限時間内でなるべくキレイなコードに書き換えていくコンテストです。 今回用意したソースコードは、HOT PEPPER Beautyのアプリを題材としつつも、その全てのコードをリファクタリングしようとすると仕様理解だけで時間が終わってしまうため、「サロン検索」「サロン詳細の閲覧」「サロンのブックマーク」という3つの機能に絞ったものにしました。 また、HOT PE

    リクルートリファクタリングコンテストを開催しました
  • Swiftはじめました - ゼクシィiOSアプリの場合 | Recruit Tech Blog

    はじめに Swift はじめました。と聞くと、読者の方は「いまさら?遅すぎじゃない?」とか、「大切なのは何の言語で書くかよりも設計じゃないの?」などと思われるかもしれません。気持ちはわかります。 しかし実際、ゼクシィアプリのコードベースは今まで Objective-C 100% でした。そして、つい最近、はじめてプロダクションコードとして Swift のコードをリリースすることができました。稿では、そこに至るまでに考えたことや、具体的なやり方を紹介できればと思います。 申し遅れましたが、この記事はゼクシィ iOS アプリの開発を担当している @tondol がお送りします。好きな結婚式ソングは lily white で「ふたりハピネス」です。1)ラブライブ!のキャラクターソングです。わざわざ脚注までお読みいただき、ありがとうございます。 背景 前述の通り、ゼクシィアプリはこれまで Obj

    Swiftはじめました - ゼクシィiOSアプリの場合 | Recruit Tech Blog
    nobuoka
    nobuoka 2020/02/14
    Swift 化してる
  • Codecov で iOS アプリのテストカバレッジを可視化する (GitHub + CircleCI + Codecov) | Recruit Tech Blog

    エンジニアリングマネジャーの @nobuoka です。 iOS アプリ 「ゼクシィ」 の開発などを担当しています。 記事では、「ゼクシィ」 iOS アプリのプロジェクトでテストカバレッジを可視化した取り組みを共有します。 技術的に新しいことや難しいことをしているわけではありませんが、カバレッジ可視化の一つの事例として参考になればと思います。 背景・目的 これまで 「ゼクシィ」 のアプリ開発は社外に発注していたのですが、開発をさらに推進していくため、今年の 8 月から内製開発組織も 「ゼクシィ」 のアプリ開発に関わるようになりました。 我々内製開発チームがプロジェクトに参画した時点で、「ゼクシィ」 の iOS プロジェクトのコードテストに関する状況は下記のとおりでした。 iOS アプリ 「ゼクシィ」 のプロジェクトには 2014 年ごろまでに書かれたテストコードが含まれている 当時は日

    Codecov で iOS アプリのテストカバレッジを可視化する (GitHub + CircleCI + Codecov) | Recruit Tech Blog
  • 障害対応からOSSへコントリビューションを行った時の話 | Recruit Tech Blog

    Pulling xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/xxxxx:latest (attempt 3 of 3)... Error response from daemon: Get https://xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/v2/: dial tcp: lookup xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com on 172.18.0.3:53: read udp 10.254.0.122:48372->172.18.0.3:53: i/o timeout デプロイまでのフローは ボタンクリックすると、 git clone -> docker build -> docker push -> k8

    障害対応からOSSへコントリビューションを行った時の話 | Recruit Tech Blog
  • CircleCI 2.0 + fastlane + Slather でコードカバレッジの変化を Slack に通知する | PSYENCE:MEDIA

    CircleCI 2.0 + fastlane + Slather でコードカバレッジの変化を Slack に通知する yutu 2017.12.20 31 23620 こんにちは、スタディサプリオープンキャンパスの iOS アプリを担当している平井です。 iOS アプリ開発界隈ではテストや CI/CD に関する話題が盛り上がっています。せっかく書いたテストをもっと有効に活用したい方も多いはず。有効活用する方法の1つとして、コードカバレッジの変化を観察することが挙げられます。コードカバレッジが下がったらリジェクト...とまでいかなくても、変化を知ることだけでもメリットがあります。 iOS アプリ開発でも Codecov や Coveralls と連携することで簡単に実現できます。しかし、これらのサービスはプライベートリポジトリは有料であるため、なかなか利用できない方も多いのではないようでし

    CircleCI 2.0 + fastlane + Slather でコードカバレッジの変化を Slack に通知する | PSYENCE:MEDIA
  • サービスメッシュを実現するIstioをEKS上で動かす - その1 まずはMinikubeでサンプルアプリケーションを動かしてみる | PSYENCE:MEDIA

    サービスメッシュを実現するIstioをEKS上で動かす - その1 まずはMinikubeでサンプルアプリケーションを動かしてみる 山崎 雅斗 2019.04.03 115 1665637 Istioとは Istioは、サービスメッシュを実現するために用いられるソフトウェアです。各マイクロサービスと一緒にSidecar Proxyと呼ばれるプロキシをデプロイし、Sidecar Proxy経由で他のマイクロサービスとの通信を行います。Istioでは、Sidecar ProxyとしてLyft社が作成したEnvoyを採用しています。 Istioは、アプリケーション側で特に修正を加えることなく使えるという特徴があります。例えばKubernetes環境の場合、サービスをデプロイすると、IstioによってPod内にSidecar Proxyが自動的に配置されます。Init Containersという機

    サービスメッシュを実現するIstioをEKS上で動かす - その1 まずはMinikubeでサンプルアプリケーションを動かしてみる | PSYENCE:MEDIA
  • DroidKaigi 2019で登壇&ブース出展しました

    こんにちは!Airメイト のAndroidアプリを開発している小谷野(@bandwagondagon)です。 先日行われたDroidKaigi 2019 にスピーカーとして登壇させてもらいましたので、その紹介と報告をします。 また、昨年 に引き続き、会社のブースを出展しており、そこで実施したAndroidクイズの解答と結果を公開いたします! デザイナーとエンジニアの距離をより近づける Lottie 利用術 「デザイナーとエンジニアの距離をより近づける Lottie 利用術」というタイトルで今回初めて登壇しました。 発表のメインテーマでもあるLottieとはAirbnb, Inc.が公開しているOSSでAdobe After Effectsで作成したパスアニメーションを、モバイルやwebといった各アプリケーションプラットフォーム上で描画するためのライブラリです。 昨年のDroidKaigi

    DroidKaigi 2019で登壇&ブース出展しました
    nobuoka
    nobuoka 2019/03/13
    Lottie、使ったことないけどこのスライドで完全に理解した。
  • R-ISUCON 2018 Winter解説記事 | Recruit Tech Blog

    この記事はリクルートエンジニアアドベントカレンダーの9日目の記事です。 解説記事をアップします。 R-ISUCONとは ISUCON(性能チューニングコンテスト)のリクルート版です。 詳しくは以下の記事を見てみてください。 チューニングに王道あり、R-ISUCON 2018 Springレポート 今回の問題「チャットサービス」 チャットサービスをお題にしました。WebSocketでリアルタイム通信あり、既読通知あり、投稿はPOSTだけど、既読通知もメッセージ通知も 1秒間以内 という仕様だけ聞いたら仕様側に「なんとか時間を伸ばしてくれ」と言いたくなるような仕様です。 実際弊社でもリアルタイム通信が多いアプリケーションが増えてきました。チャットであったり、広告配信であったり、検索クエリの補完であったり。 で、チャットとかでよくやってしまいがちな実装の問題も増えてきていて、よくあるのが、「We

    R-ISUCON 2018 Winter解説記事 | Recruit Tech Blog
    nobuoka
    nobuoka 2018/12/10
    WebSocket 楽しそう。 お疲れ様でした!
  • AWS CloudFront を使って Webサービスにおける画像のセキュア環境を構築した – PSYENCE:MEDIA

    この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2018 の投稿記事です。 はじめに 画像権限、管理していますか? 複数の組織をユーザーとして抱えるようなWebサービスにおいて、組織内のプライベートな情報として参照できる環境上で画像をアップロードをしたとしても、一度一意の画像URLを取得してしまえばその後ログインせずともパブリックに画像参照できる、という状況の方が多いと思います。 今回はCloudFrontの機能を使って一定の条件でセキュアな環境を開発環境用に構築する方法を紹介します。 想定要件 具体的には下記の要件を満たします。 組織Aに所属するユーザーがアップロードした画像は、同組織に所属するユーザーしか参照できない ユーザーは複数の組織に所属できる 複数組織に所属するユーザーは横断して画像の参照できる 画像のキャッシュは使いたい 画像

    AWS CloudFront を使って Webサービスにおける画像のセキュア環境を構築した – PSYENCE:MEDIA
  • Android アプリバンドルに instant experience を追加する (インスタントアプリを簡単に作れるようになった) – PSYENCE:MEDIA

    Android アプリバンドルに instant experience を追加する (インスタントアプリを簡単に作れるようになった) nobuoka 2018.12.04 39 141816 Android アプリには、インストールせずに起動できる 「インスタントアプリ (以下 instant apps)」 と呼ばれる種類のものがあります。 記事では、下記の内容を説明します。 Android アプリバンドルに instant experience を追加することで、instant apps を作ることができる。 (以前よりも簡単に instant apps を作ることができるようになった。) Instant apps の動作確認方法。 Instant apps の歴史 Android アプリバンドル以前の instant apps Instant apps は 2016 年に公表され 1

    Android アプリバンドルに instant experience を追加する (インスタントアプリを簡単に作れるようになった) – PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/12/04
    書いた! 昔はモジュール分けとかしないとインスタントアプリを作れなかったけど、Android アプリバンドルに対応することでインスタントアプリを簡単に作れるようになったぞい
  • ブラウザで マーカーベース AR #haiku – PSYENCE:MEDIA

    こんにちは、キッズリー開発グループの @tondol です。好きなハッシュタグは #ようちか安心委員会 です。 突然ですが、 皆さん AR やっていますか? iOS なら ARKitGoogle にはARCore プロジェクトがあったりと、スマートフォンで動かす AR フレームワークが続々登場していますね。 最新の AR フレームワークでは、上記の動画のようにかなり高度なインタラクションまで実現出来たりしますが、今回はもう少しハードルを下げて 昔ながらのマーカーベース AR を取り上げます 。 マーカーベース (マーカー型) AR とは: 黒枠で囲まれた正方形パターン (マーカー) をカメラで認識し、マーカーを基準に 3D コンテンツを重畳するタイプの AR を指します。 ARToolKit でよく使われる Hiro マーカー に見覚えのある方は結構いらっしゃるのではないでしょうか?

    ブラウザで マーカーベース AR #haiku – PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/12/02
    フラスタに応用できて便利!
  • Adobe MAXでセッションに参加して得られたディープな学び – PSYENCE:MEDIA

    こんにちは!エンジニアの田野(@tanokin)とアートディレクターの居です。 2018年10月15日 ~ 10月17日にアメリカ ロサンゼルスで開催された2018年度のAdobe MAXに参加してきました。 Adobe MAXとは Adobe MAX—The Creativity Conference. PhotoshopやIllustrator等のクリエイティブ系ツールを提供するAdobe Systems社が毎年開催する正解最大級のクリエイティブ系カンファレンスです。基調講演では多くの新サービス(製品)を発表することで知られており、この他にも著名な映画監督やアニメーターといったクリエイター達による講演、Adobeの社員と共にプロトタイプ作成、各種ツールの効果的な使い方を学べるワークショップなど他では決して体験出来ないコンテンツが用意されています。 当エントリでは、我々が現地にてセッシ

    Adobe MAXでセッションに参加して得られたディープな学び – PSYENCE:MEDIA
  • EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 – PSYENCE:MEDIA

    EnvoyAmazon ECS Service Discoveryを利用したgRPCの負荷分散 木村 勇太 2018.10.22 162 24126264 自己紹介 こんにちは。今年の7月からリクルートマーケティングパートナーズに入社した木村 勇太です。 私は現在開発支援G 1)エンジニアをサポートするエンジニア~RMP内製開発の強さ・魅力~ という。インフラや自動化など内製エンジニアへの開発支援を行うグループに属しています。 はじめに 弊社サービスの スタディサプリ ENGLISH ではアーキテクチャにMicroservices、gRPCを利用してサーバーサイドを構築しています。スタディサプリ ENGLISH のMicroservices化についての詳細は以下の記事にてご紹介しています。 スタディサプリENGLISH 大規模改修の裏側 – PSYENCE:MEDIA 今回、gRPCの負

    EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 – PSYENCE:MEDIA
  • Spinnakerのコードを手元で修正して動作確認する方法(その1) – PSYENCE:MEDIA

    こんにちは。業務委託で開発支援Gのお手伝いをしているmizzyです。 お手伝いの一環として、現在Spinnakerの動作検証をしています。検証中に不具合に遭遇し、調査や修正のためにコードを変更して動作確認する機会がありました。Architecture - Spinnakerが示す通り、Spinnakerはマイクロサービス化されており、10個以上のコンポーネントが協調して動作しているため、構成が若干複雑です。そのため、手元でコードを修正して動作確認するのに多少苦労しました。 この記事では、みなさん(将来の自分含む)が同じ苦労をしなくて済むよう、得られた知見について共有します。内容は、Spinnakerをある程度触ったことがある人向けになっています。 なお、遭遇した不具合についてはここでは詳しく説明しません。興味ある方は、以下のイシューとプルリクエストをご参照ください。 AWS setting

    Spinnakerのコードを手元で修正して動作確認する方法(その1) – PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/10/17
    Spinnaker、使いこなせれば便利そうだけど使いこなすまでが難しそうだ
  • CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! – PSYENCE:MEDIA

    CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! 福井祐人 2018.10.11 280 585115102 こんにちは。スタディサプリ English の開発を担当しているwebフロントエンドエンジニアの福井です。 CircleCI で 2.1 configuration がプレビューとして使えるようになりました。試しに使ってみたところ冗長なconfig.ymlが ものすごくすっきりした ので簡単な例を交えて紹介します。 参考 CircleCI-Public/config-preview-sdk CircleCI new configuration documentation 2.0 の冗長な config.yml 今回用意したconfig.ymlはwebフロントエンドの典型的な例で、下記のような流れで順次ジョブを実行します。 setup -

    CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! – PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/10/11
    CircleCI 2.1 ええやん
  • 日本のエンジニア組織を活性化する!Re:OD Hack開催レポート | PSYENCE:MEDIA

    こんにちは!エンジニアの田野(@tanokin)です。 2018年8月7日(火)に、リクルートマーケティングパートナーズ ( 以下、RMP ) にてエンジニア組織における組織開発の知見交流イベント Re:OD Hack #1 を開催しました。今回はそのイベントの様子をご紹介します。 Re:OD Hackとは? リクルートマーケティングパートナーズのリファラルGで企画したエンジニア組織における組織開発の知見交流イベントです。Re:OD Hackというイベント名には、Organization Development:組織開発(OD)を再定義して(Re)より良いものにしていく(Hack)という意味が込められています。 イベントの目的 社内にとどまっている知見を外に出して共有、議論していけるコミュニティを作ること。そしてそこで得たものを持ち帰って自社で実行するサイクルを回していくことで、日全体の

    日本のエンジニア組織を活性化する!Re:OD Hack開催レポート | PSYENCE:MEDIA
  • 社内交流の一環で スプラトゥーン2 大会をやったら予想以上に盛り上がったお話 🦑 ~ リファラルグループの活動報告 | PSYENCE:MEDIA

    社内交流の一環で スプラトゥーン2 大会をやったら予想以上に盛り上がったお話 🦑 ~ リファラルグループの活動報告 鳥倉広大 2018.08.17 31 32044 こんにちは、リクルートマーケティングパートナーズ ( 以下 RMP ) リファラルグループの鳥倉 ( バード(@TorikoTheBird) ) です(•ө•) スペシャリストを主とする8名のメンバーで構成されるリファラルグループでは様々な施策を行っており、その活動内容について発信していこうと思います。 はじめに 今回は社内交流活性化施策の1つ、『テーマランチ会』についてご紹介します。 社内交流の活性化は永遠の課題 「社内交流を活性化させたい」 というのは多くの企業が持つ願望でもあり、同時に簡単ではない課題ですよね。我々リファラルグループとしても同様の課題を抱えています。 もう少し正確に言うと、チームメンバー同士は比較的仲が

    社内交流の一環で スプラトゥーン2 大会をやったら予想以上に盛り上がったお話 🦑 ~ リファラルグループの活動報告 | PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/08/17
    『スプラトゥーン 2』 大会やってた。 技術的なテーマで集まると技術領域がかぶってない人とは顔を合わせなかったりもするので、こういう娯楽系のテーマでやるのも良かった
  • R-ISUCONを開催しました~問題公開編~ | Recruit Tech Blog

    Recruit 全社対抗のISUCON、R-ISUCON (りすこん) を開催しました。 @yosuke_furukawa は主に問題作成を担当、 @orisano がベンチマークを担当し、インフラは @int-tt が担当しました。ヘルプとして Java の参考実装は @mashroomhama が担当しました。 詳しくは前回の記事を参照して下さい。 https://recruit-tech.co.jp/blog/2018/04/27/r_isucon_2018_spring/ 問題の概要 いわゆるリクルートの社内システムでおなじみの「会議室予約システム」を題材にしました。 リクルートでは3ヶ月ごとに会議室を予約する仕組みをもっています。3ヶ月ごとの会議予約開始日の朝には全てのリクルートグループ各社からアクセスが頻繁に行われ、その結果会議室予約システムが遅くなったり、500エラーで落ちた

    R-ISUCONを開催しました~問題公開編~ | Recruit Tech Blog
  • プログラミング言語Streemをハックしよう!Matzゼミの全貌をレポート | PSYENCE:MEDIA

    プログラミング言語Streemをハックしよう!Matzゼミの全貌をレポート 湊川あい 2018.03.05 367 701556280 プログラミング言語Rubyの生みの親である“Matz”こと まつもとゆきひろさん。2016年より株式会社リクルートマーケティングパートナーズ(以下RMP)の技術フェロー・技術顧問として尽力いただいております。 2018年2月14日には、スペシャル企画第3弾として、RMP社内で「Matzゼミ」が開講! 前半:プログラミング言語StreemについてMatzさんの講演 Streemはどのようにして出来たのか?今後の展開は? 後半:ワークショップ Matzが作っているプログラミング言語 Streemをハックしよう MatzさんによるStreemの講演は全世界初公開の内容です。この記事であなたも「Matzゼミ」を体験してみましょう! (取材・文章: 湊川あい) St

    プログラミング言語Streemをハックしよう!Matzゼミの全貌をレポート | PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/03/05
    Matz さんがどういう思想で言語設計をしているか、という話が興味深いなー。 言語処理系が内部情報の API を提供することの重要性を思うと @mactkg の Streem ビジュアル化もすごい
  • 【DroidKaigi 2018】 ニッチな技術と交流の 2 日間 | PSYENCE:MEDIA

    キッズリーのリードエンジニア (ときどき Android アプリ開発) の信岡です。 2018 年 2 月 8 日、9 日に開催された Android に関する国内最大規模のカンファレンス DroidKaigi 2018 において、弊社リクルートマーケティングパートナーズはシルバースポンサーを務めさせていただきました。 ブースに立ち寄ってくださった皆さま、ありがとうございました。 今回は 「ニッチな技術とコミュニケーション」 がテーマということで、私個人としてもセッションや交流から様々な刺激をもらいました。 運営の皆さま、参加者の皆さまに感謝しております。 弊社からは 「マルチモジュールのすヽめ」 というタイトルで釘宮が登壇しました。 DroidKaigi 2018で「マルチモジュールのすヽめ」という内容で発表して来ました 複数の Android ライブラリモジュールからアプリを構築するよ

    【DroidKaigi 2018】 ニッチな技術と交流の 2 日間 | PSYENCE:MEDIA
    nobuoka
    nobuoka 2018/02/17
    運営の皆さま、交流してくださった皆さまありがとうございました! 弊社 @kgmyshin の 「マルチモジュールのすヽめ」 や弊社参加者のオススメを紹介してます。 私からは @tomoya0x00 「Kioskアプリと端末の作り方」