Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

Podcast #8 Building Technology Brand

人事部 高橋 です。

今回の Podcast ではプロダクト戦略開発室でこの Sansan Builders Box の編集担当でもある鈴木をゲストに迎えました。

Sansan の技術ブランディングや Sansan Builders Box の運営、エンジニア向けイベントの運営などについて語ってもらいました。

soundcloud.com

7:20 頃からはこのブログ運営についての苦労話や工夫していること、毎営業日更新のための秘訣などの裏話が聞けます。

22:24 頃からは勉強会運営について。イベントを続けるためには情熱が必要!という話、ブログやイベントに懸けている思いが聞けて、個人的にすごくツボでした🔥

Members
  • 鈴木 (Guest) : Sansanの技術ブランディングを担当する人。 *1
  • 高橋 : エンジニアから人事に転身した人。*2
  • 加畑 : レガシー改善に強いサーバーサイドエンジニア。*3
Show Note
  • プロダクト戦略開発室とは
  • Sansanの技術広報について
  • ブログ「Sansan Builders Box」の運営、毎営業日更新の秘訣
  • 勉強会の企画
  • 質の高いイベントのために抑えるべきポイント
  • イベント企画のモチベーション
  • 2/18 エンジニア向けイベント@福岡

sansan.connpass.com

「iOS開発チームの特徴と開発方法を公開!」 勉強会参加レポート

はじめに

iOSエンジニアの尾林です。Sansan iOSアプリを開発しています。
今回は1/27にJapanTaxi社とZOZOテクノロジーズ社からスピーカーを迎えて開催した「iOS開発チームの特徴と開発方法を公開!」勉強会に参加してきましたので、その様子をレポート記事としてお伝えします。
sansan.connpass.com

弊社からはSansan iOSチームのLead Engineerである中川が登壇することになりましたので、その応援も兼ねて参加してまいりました!
今回の勉強会は、「各社のiOS開発チームの特徴を踏まえながらその開発手法を紹介する」をコンセプトとして開催されました。

f:id:s_yuka:20200203163934j:plain
多くの方にお集まりいただきました

続きを読む

Eight iOS アプリの申請作業はボタン一つ

Eight 事業部 iOS エンジニアの 河辺 です。Eight iOS チームでは、これまでアプリの申請作業を手動で行なっていましたが、昨年の12月より自動化しました。この記事では、そのアプリ申請作業の自動化の取り組みを紹介したいと思います。

これまでのアプリ申請に必要な作業

iOS アプリをリリースする際には Apple に申請する必要があるのですが、申請作業は手順が多く複雑です。Eight iOS では、アプリの申請作業を一部自動化していましたが、それでもなお作業手順が多い状態でした。当時のアプリ申請作業の手順は以下の通りです。

  • Bitrise の Workflow を実行し、ipa ファイルを作成, App Store Connect に ipa ファイルをアップロードする
  • Testflight でアプリを配信する
  • App Store Connect でリリースバージョンを作成する
  • Store 文言を変更する
  • App Store Connect で、リリース時に配布する ipa ファイルを選択する
  • 「バージョンのリリース」, 「自動アップデート用の段階的リリース」, 「 iOS 評価概要のリセット」の各項目でチェックを付ける
  • 「輸出コンプライアンス」, 「広告 ID ( Advertising Identifier 又は IDFA ) 」の各項目でチェックを付ける
  • 審査に提出する

審査に提出する際には、各設定項目が正しく設定されているかダブルチェックを行っていました。

人間がアプリの申請作業を行う課題

Eight iOS チームでは、約2週間に1回という高い頻度でアプリをリリースしています。高い頻度でアプリをリリースすることで、「ユーザーに速く価値を届けられる」という点においては良いのですが、「高い頻度でアプリの申請作業を人間が行う必要がある」という点においては課題感がありました。

アプリの申請作業は手順が多く複雑であるため、ミスをする可能性もありました。アプリ申請作業のミスを防ぐためにタブルチェックを行なっていたものの、人間が作業をしている以上、今後も必ずしもミスをしないとは言い切れませんでした。

これまではアプリ申請作業の一部を自動化していましたが、作業コストが低くはないという状況でした。今後も高い頻度でアプリをリリースする上で、アプリの申請に掛かる作業コストは無視できません。また、アプリの申請作業のような機械に任せられることは機械に任せて、人間はユーザーに価値を届けることに注力する構図を作りたいと考えていました。

f:id:m-kawabe:20200124103328p:plain:w200
続きを読む

非同期処理を理解する

はじめに

プロダクト開発部の荒川です。私事ではありますが、バックエンドエンジニアからiOSエンジニアへと転向しました。iOS開発は全くの未経験だったのですが、周りのメンバにも助けられつつ、なんとかやっていけています。サーバサイド、クライアントサイドの両側面から一つのアプリケーションを眺めることができて、非常に楽しく開発できています。

さて前置きはここまでにして、今回は非同期処理をまとめてみました。擬似コードはMDN Web Docsより参考にさせていただいております。

同期処理と非同期処理のキホン

非同期を説明する前に、同期処理について説明しておきましょう。 同期処理とはあるタスクを順番に実行する方式のことで、そのタスクが実行されている間は他のタスクが中断される方式です。*1

同期処理にはいくつかの欠点があります。最たる例としてディスクアクセスなどのI/O処理の場合、メモリアクセスと比べると非常に遅い事が多く、ファイルやソケットが読み出しを完了するまで処理を止める必要があるので、その間は他の処理をすることができません。

f:id:ad-sho-loko:20200202011639p:plain

一方で非同期処理はある処理を実行する間に他の処理を実現することができます。JavaScriptやSwiftなどのいわゆるクライアントサイド開発に携わる方は日常的に利用するはずです。非同期の実現方法にはいくつかの方法があるので、図は後ほどの実現方法の箇所にてご紹介します。

なぜ非同期処理が重要なのか

I/O処理に限らずブロックというのは、クライアントサイドにおいては大きな問題となります。アプリケーションのメインスレッドとしてUI専用のスレッド、ユーザからの操作を受け付けるためのイベントループの処理が動作しており、開発者が同スレッドにて処理をブロックするとイベントが処理できなくなります。結果としてユーザから見ると画面が止まったかのような体験となるので、UI以外の処理を同一スレッド上で実行するのを避けなければなりません。

もちろんサーバサイドにおいてもCPUを遊ばせておく必要性が低いので重要なテクニックであることには代わりありません。

*1:厳密に定義することは難しい

続きを読む

CSS について復習する

こんにちは。Eight 事業部エンジニアの鳥山(@pvcresin)です。
業務では Eight Career Design の Web フロントエンドを担当しています。
Eight では様々な技術を使って、CSS によるスタイリングを行っています。

  • PC 版 Eight
    • Sass(SCSS) + BEM
  • Eight-UI: 社内向け React コンポーネントライブラリ
    • CSS Modules + PostCSS
  • Eight のとある新規開発
    • styled-components

今回は、CSS にまつわる技術を復習し、Web におけるより良いスタイリングについて考えていきたいと思います。

CSS

CSS は文書のスタイルを定義することができる、スタイルシート言語です。
ここで言う文書とは、HTML をはじめとするマークアップ言語によって書かれた、構造化された文書のことを指します。

h1 {
  color: blue;
}

セレクタ(h1の部分)によってスタイルを適用する要素を指定し、{}ブロック内に実際のスタイルの定義を書いていきます。
Web サービスでは様々なページで統一的なスタイルを提供することが多く、文書(HTML)とスタイル定義(CSS)が分かれていることで、効率的にスタイルのメンテナンスを行うことができます。

続きを読む

AWS re:Invent 2019 にいってみた。(2日目)

こんにちは。
DSOC Infrastructure Groupの水谷です。

ヘヴィ・トリップ最高でした!
メタルを通って来た人で観てない人が居たら是非観ていただきたい最高の映画でした。ベース担当がホントにベース担当な性格だったのが良かったなぁ。

メタルついでですが、オジー・オズボーンさん、どうにか元気になってほしいです。

あ、お正月は如何お過ごしでしたでしょうか?
僕は元旦にインフルエンザを発症し、5日まできっかり寝てました。

で・・・・だいぶ、前の記事から時間がたってしまいました。
記憶を掘り起こすことがだいぶ難しい年頃なので、日付が前後した事を書くかもしれませんが内容に間違いは無いので安心してください。
それ、三日目のイベントだよと思っても、あ、この人おじさんだったわと思ってくれると幸いです。

それでは

2日目

2日目は現地時間9:30前(弊社エンジニアの始業は9:30です)には準備して軽く先週やり残した仕事をしたりしてました。
re:Invent、毎日8:00~夜中までセッションやらワークショップ漬けも可能なので、次回行く機会があれば体調整え仕事も片付けて頑張ってみたいところです。

続きを読む

「1on1を学びたいエンジニアのためのワークショップ」を開催しました

Sansanプロダクト開発部、関西支店maidoチームの光川です。

2020年1月23日に弊社関西支店で「1on1を学びたいエンジニアのためのワークショップ」を開催しました。

f:id:mitsukawa_sansan:20200128102720j:plain

この勉強会は募集開始後すぐに予定人数が埋まってしまい、増枠した後もまたすぐ定員が埋まるという盛況ぶりでした。

勉強会の構成

勉強会は以下のような構成で行いました。

  • セッション
  • ワークショップ
  • Q&A
  • 交流会

セッションの講師、ワークショップのファシリテーターは弊社の谷内が行いました。

谷内は Engineering Management グループのマネージャーとして、Sansanプロダクト開発部のエンジニア組織と日々向き合っています。 また最近は人事部を兼務し、エンジニアだけでなく社内コーチとして多種多様な人たちへコーチングを実施しています。

続きを読む

© Sansan, Inc.