Sansan Builders Blog

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

開発

【オンライン名刺開発の裏側】iOS アプリ開発で良かったことを紹介!

こんにちは。 Sansan iOS アプリエンジニアの中川です。 Sansan iOS アプリは今年の 6 月 15 日にメジャーバージョンアップをしました。 このバージョンアップにはオンライン名刺が目玉機能として含まれています。 オンライン名刺は昨今の新型コロナウイルス…

レガシーシステムをこえて

Sansanプロダクト開発部・基盤チームの加畑です。法人向け名刺管理サービスSansan(以下、Sansan)の開発をしています。 これまでに、レガシーシステムの改善を主題とした記事を2つ書きました。レガシーシステムのおそうじでは、レガシーシステムを改善するプ…

Goで作るテキストエディタ

はじめに みなさんこんにちは。Sansan事業部プロダクト開発部のiOSエンジニア荒川です。 以前はRDBMSの記事*1を寄稿し、好評いただいたこともあり、定期的に車輪の再発明系の記事を書いていこうと思います。 さて本日はタイトルの通り、VimやEmacsに代表され…

SCSS-Lint から stylelint に移行した話

こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 ついこの間新卒で入ったと思ったら、もう 2 年目に突入していました。時が経つのは早いものです。 今回は Eight の Web フロントエンドで使っているスタイルのリンター(コ…

GraphQLを導入してDX向上(フロントエンド編)

こんにちは。Eight事業部の青山です。現在は社内の名刺を一括管理できるEightのサービス"企業向けプレミアム"で主にフロントエンドを担当しています。 今回は以前投稿されたGraphQL導入記事のフロントエンド側について紹介したいと思います。 REST APIが主流…

REST APIが主流のプロジェクトの中でGraphQLを導入してみた話(サーバーサイド編)

こんにちは。Eight事業部の古本です。Eightで"企業向けプレミアム"という企業内で名刺を共有できるサービスのサーバーサイドの開発・運用を主に行っています。その企業向けプレミアムですが、去る2020年5月にバージョンアップが行われました。 そこでEightの…

「Go言語でつくるインタプリタ」をRustで実装しました。

はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかな…

GCP の Error Reporting に飛ぶエラーを Slack に通知したい

DSOC サービス開発部のエンジニアの小山です。 私のチームでは GCP を使っており、GCP の Error Reporting というエラーを収集してくれるサービスでアプリケーションで発生したエラーを確認しています。 Error Reporting ですが、この Error Reporting は現…

Eight フロントエンド、Prettier 入りました

こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 最近は、Beat Saber という VR リズムゲームにハマっています。 音楽に合わせて、手に持ったライトセーバー的なものでブロックを切っていくゲームで、いい運動になっていま…

AWSを活用した大規模データのバックアップ

はじめに こんにちは。プロダクト開発部でインフラエンジニアをしている佐野です。 コロナの影響でここ数ヵ月、家に籠ってリモートワークで作業を行っていますが、椅子とモニターを新調して、やっと快適な作業環境が整ってきた今日この頃です。さて、今回の…

startActivityForResultがDeprecatedになった対応方法

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。 私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.com 2020/04/29にActivityのVersion 1.2.0-alpha04が公開され、 startActivityForResult()とonActiv…

マルチモジュールへの第一歩

SansanでAndroidアプリケーションエンジニアをしている山口 です。Sansan Androidではマルチモジュールへの移行を徐々に進めています。今回はappモジュールからどうマルチモジュールに移行しているかについて書きたいと思います。 マルチモジュールにする意…

JavaMailでHTMLメールとTEXTメールを同時送信する方法と注意

新規事業開発室 新卒1年目の山邊です。 Sansan の新規事業で2020年5月11日にリリースされた「あらゆる請求書をオンラインで受け取る。」ことの出来るサービスBill Oneを開発しています。 その過程でメールを送信する際にHTML形式とTEXT形式をまとめて一つの…

ECSのDAEMONをDRAININGで直ぐに停止しないようにした

DSOCインフラチームの藤田です。コロナの影響で大好きなバスケットボールができずに悶々とした日々を送っていましたが、最近Netflixで配信されたマイケル・ジョーダンのドキュメンタリーを視聴して、更に悶々としています。マイケル・ジョーダンについて名前…

プロジェクトの成否を決める非機能要件を定義するには

こんにちは、Sansanプロダクト開発部 プロダクトグループの清水です。 直近で非機能要件の定義について頭を悩ませられる事もあったので、改めて非機能要件の定義について記事にしてみました。 非機能要件とは? ビジネス目的を果たす事に成功するソフトウェア…

B2BマルチテナントSaaSの認証にAuth0を使うときに知っておきたかったこと

こんにちは、新規事業開発室の加藤です。私たちのチームでは新規事業のプロダクトとしてB2BのマルチテナントSaaSを開発しており、その認証にAuth0を使っています。今回Auth0を初めて使用する中で試行錯誤することが多かったので、最初から知っておきたかった…

Eight、Sign in with Apple対応したよ!

はじめに こんにちは! Eight事業部でiOSアプリエンジニアをしている福尾です。 コロナウイルス大変ですね... 弊社も原則在宅勤務になっており、日々リモートでの業務をしております。*1 幸い、僕が所属するアプリチームには普段からリモートの方が数人いる…

Eightの品質を保ち続ける「Rails × RSpec × AWS」なローカル & CI環境

Eight事業部プロダクト部 Platform Group / Engineering Manager の 藤井洋太郎(yotaro) です。 さて、私が属するPlatform Groupは「アーキテクチャ刷新」「データ基盤整備」「セキュリティ」「環境整備」など多方面での開発・改善を行っています。 本記事で…

composed_of を使って Rails で値オブジェクトを扱う

DSOC サービス開発部でエンジニアをしている石畑です。普段は Rails で名寄せサービスを作っています。 今回は Rails で値オブジェクトを扱うのに ActiveRecord の composed_of が便利なので、紹介します。 値オブジェクト 値オブジェクトは DDD でも紹介さ…

AndroidのWorkManagerでDIする

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。 私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.com WorkManagerを使うと、アプリの起動状態が変化しても実行してくれるような、延期可能な非同期タ…

Sansan iOS アプリの内側

こんにちは。 Sansan iOS アプリエンジニアの中川です。 Sansan iOS アプリは B to B アプリの性質上、 App Store のプレビューやログイン、新規登録くらいしか未登録ユーザーが触れられる領域がなく、ビジネスマンならともかく、エンジニアがそのアプリがど…

DeployGateで開発中アプリの配布をスッキリさせたはなし。

みなさまはじめまして! Sansan事業部プロダクト開発部Androidエンジニアの原田です。 今回は導入から1年半くらいが経つDeployGateというサービスについて、私のチームがどのように利用しているかご紹介いたします。 背景 突然ですがみなさんは、開発中のア…

レスポンス速度に向き合う

こんにちは、Sansanの杉原です。BtoBサービスのSansanのブラウザアプリケーションのエンジニア兼プロダクトマネージャーをしています。 今回はブラウザアプリのパフォーマンスにおける速度(*1)で苦い経験をしたエンジニアが、プロダクトマネージャーになっ…

VIPER の実装コストを下げるために

こんにちは! Sansan iOS チームの髙橋佑一朗です。 Sansan iOS アプリでは現在、 VIPER をアーキテクチャとして採用していますが、VIPER の構成で実装していくに当たって1画面作るのにコードを書く量が多いなぁと少しづつ感じてくるようになりました。 そこ…

Sansan iOSアプリの発信者名表示機能に関する実装・運用改善について

はじめに Sansan事業部で法人向けクラウド名刺サービスSansanのiOSアプリ開発を担当している栗山です。 Sansanアプリには、名刺に記載されている電話番号や同僚から電話があった際に発信者名を表示する機能があります(以下 発信者名表示機能 )。 Sansanアプ…

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

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

非同期処理を理解する

はじめに プロダクト開発部の荒川です。私事ではありますが、バックエンドエンジニアからiOSエンジニアへと転向しました。iOS開発は全くの未経験だったのですが、周りのメンバにも助けられつつ、なんとかやっていけています。サーバサイド、クライアントサイ…

CSS について復習する

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

タイムゾーン対応で振り返る 既存プロダクトのグローバル化

プロダクト開発部 Globalプロダクトグループの天貝です。私の所属の正式名称は Globalプロダクトグループ ですが、開発部では グローバルチーム と呼ばれています。海外のユーザからのフィードバックをもとに、海外のユーザに今以上に価値を訴求できるような…

DSOCで行なっているメタデータ管理について

初めまして。DSOC Data Direction Groupの有山と申します。 現在、Data Direction Groupでは私を入れて主に2名のメンバーがデータエンジニアとして職務と向き合っています。 ところで、データエンジニアの仕事とはどういうものを想像するでしょうか。Data Di…

© Sansan, Inc.