社内勉強会を開催してみよう!

クラシル
2022-06-01 09:00:02
そろそろ梅雨も近づき雨の多い季節になってきましたね。みなさんいかがお過ごしでしょうか? クラシルでAndroidエンジニアをやっているみうらです。 今回はエンジニアには馴染みの深い勉強会について、社内での簡単な開催方法について書いてみようと思います。 いきなりですが皆さんの会社では社内で何かしら勉強会をやっているでしょうか? 読書会やLT会、もくもく会…やっている所もあればやっていないところもあるとは思うのですが、やりたいけどやってないという話を聞いたこともあります。 外部の勉強会に参加したことはあるが勉強会を開催したことはない…といった方もいらっしゃると思います。 そこで今回は勉強会の簡単な…

Guide to "kurashiru android" app architecture vol.2 UI layer編

クラシル
2022-05-10 08:00:07
はじめに android-developers.googleblog.com 12/14に新しいアプリアーキテクチャガイドがAndroid公式からアナウンスされました。読まれた方もいらっしゃると思いますが、非常によくまとまったアーキテクチャガイドであり、新しくアプリを作る際も、既存のアプリのアーキテクチャを整理する際にも役に立ちそうな文章です。 クラシルのAndroidチームは去年の2月にAndroidアプリをリアーキテクチャしたのですが、そのアーキテクチャがアプリアーキテクチャガイドと似通った個所が多く、クラシルのアプリアーキテクチャを説明するのにもちょうど良さそうな文章だと思いました。 で…

Redux for iOS apps

クラシル
2022-04-18 08:47:52
I'm Ishida, iOS engineer in TRILL. In this article I introduce Redux architecture and implementation for iOS. TRILL engineering team has 13 engineers, about half of workers are global engineers (April 2022). We hold Study Meetup every week and a speaker talks about something technical (for example, …

KurashiruのRailsバージョンアップ(5.0 → 6.1)

クラシル
2022-04-05 02:19:04
こんにちは。クラシルサーバサイドのエンジニアをしておりますnegiです。 クラシルサーバサイドでは2021年10月から2022年3月にかけてRailsのバージョンアップ(5.0 → 6.1)を行なったので記事にしました。 クラシルでは2019年にRails5.0にバージョンアップして以降、バージョンアップができていませんでした。Rails5.0がEOLとなってからサポート対象外の状態になっていましたが、今回のバージョンアップによってサポート内にすることができました。 リリースは以下のように3回に分割して行いました。 5.0 → 5.1 5.1 → 6.0 6.0 → 6.1 5.0 → 6.1…

2022 Snowflake Data Superherosに選出されました!

クラシル
2022-04-01 02:33:20
[Snowflake] [データ基盤]
はじめに こんにちは!クラシル開発部でデータエンジニアをしておりますharry(@gappy50)です。 先日、Snowflakeの「the 2022 Data Superheroes」に選出いただきました! www.snowflake.com 世界で48名、日本で7名のSuperherosが選出されており、そのうちの1人に選ばれたことは嬉しい反面、とても恐れ多い気持ちもいっぱいではあります! 今回は、Data Superheroについてのご紹介や、今後の活動について簡単に書かせていただければと思います! Snowflake Data Superheroって? こちらに詳細書いてありますが、S…

理想のページングを実装する 後編

クラシル
2022-03-29 05:56:40
[Android] [クラシル開発]
こんにちは、クラシルAndroidエンジニアの@MeilCliです。前回、クラシル内のレシピ保存機能の開発に際してページングに関して考慮した理想のUXについての考え方について紹介しました tech.dely.jp 今回はそれの後編にあたり、Android側の実際の実装に関して深ぼって紹介しようと思います 設計 前回の記事において、サーバー側は時刻ベースのCursorを用いたページングAPIの実装、クライアント側は要素の追加・移動などのユーザー操作を記録し、その差分反映をリストに対して行うという実装方針を紹介しました これをクラシルAndroidの設計に基づいた構造に落とし込んでいきます クラシ…

理想のページングを実装する 前編

クラシル
2022-03-25 07:11:25
[Android] [クラシル開発]
こんにちは、クラシルAndroidエンジニアの@MeilCliです。近々、クラシル内のレシピ保存機能においてクラシルショートとレシピカードも保存できるようにするという変更が入ります。それの開発に際して、ページングのあるAPIにおいて更新されうるコンテンツをどう表示していくかを開発チーム内で話し合い、理想と思うものを実装したのでそれの共有を行います 当記事は前後編の前編にあたり、どう表示していくかの考え方についてご説明します 更新されうるコンテンツの理想的なUX まず、どういうことが問題になっているのか説明します ユーザーが保存タブを開いたときの表示、つまり自分が保存しているレシピ一覧についてで…

【クラシルAndroid】 ページング基盤を実装する

クラシル
2022-03-23 08:53:12
[Android] [クラシル開発]
こんにちは、クラシルAndroidエンジニアの@MeilCliです。先日ページングの基盤を実装したので紹介します なぜページングの基盤を実装することになったのか クラシルAndroidにはもともとFeedListContainerというページングに関する実装がありました。インターフェースとして表現するとUI Layerからは以下のような見た目です interface FeedListContainer { fun getUpdateFlowable(): Flowable

クラシルAndroidはなぜRepositoryを採用しなかったのか

クラシル
2022-03-22 08:37:16
[Android] [クラシルAndroidチーム] [クラシル開発]
こんにちは、クラシルAndroidエンジニアの@MeilCliです。先日Androidチームで設計についてお互いの認識を合わせ、今後のクラシルAndroidのアーキテクチャー設計をどうするか決めたので共有します 基本的な考えについてはテックリードのうめもりさんが書いた記事にありますのでよかったら読んでください*1 tech.dely.jp レイヤー構成 レイヤー構成 クラシルAndroidには3つのレイヤーが存在します UI Layer Viewの描画・ユーザ操作のハンドリング・ViewにまつわるStateの管理 Domain Layer データの加工・UI Layerへの公開 Data La…

クラシルAndroidチームに新しい仲間が増えたので、Wevox values card onlineでリモートコミュニケーションしてみました

クラシル
2022-02-28 10:00:03
皆さんこんにちは。クラシルAndroidチームのparayaです。 少しずつ梅や桜も咲き始めて春を感じる季節になってきましたね🌸2月に入り、クラシルでは新たにAndroidエンジニアが1名ジョインしました🎉Jさん入社おめでとうございます!🎉🎂🎉 クラシルAndroidチームでは新メンバーとの交流を深めるために、Wevox values cardを利用しています。Wevox values cardについては過去に私がジョインした時の記事もあるので良かったら見てくださいね。 tech.dely.jp そこで、チームで恒例となっているWevox values cardでコミュニケーションを実施したい…

Guide to "kurashiru android" app architecture vol.1 概要編

クラシル
2022-01-05 08:00:03
はじめに こんにちは。クラシルのAndroidアプリチームのテックリードのうめもりです。 android-developers.googleblog.com 12/14に新しいアプリアーキテクチャガイドがAndroid公式からアナウンスされました。読まれた方もいらっしゃると思いますが、非常によくまとまったアーキテクチャガイドであり、新しくアプリを作る際も、既存のアプリのアーキテクチャを整理する際にも役に立ちそうな文章です。 クラシルのAndroidチームは去年の2月にAndroidアプリをリアーキテクチャしたのですが、そのアーキテクチャがアプリアーキテクチャガイドと似通った個所が多く、クラシル…

エンジニア不足を解消するアウトソーシングを有効活用した適材適所爆速開発

クラシル
2021-12-22 03:25:07
こんにちは。TRILL開発部でバックエンドエンジニアをしている安尾です。 この記事はdely Advent Calendar 2021 22日目の記事です。 昨日はクラシル開発部SREチームの松嶋さんの「クラシルのSREをチーム化するときに意識した3つのことと半年間の実績」という記事でした。SREに興味がある人、開発チームの立ち上げに興味がある人、是非参考にしてみてください! 今日は僕が所属するTRILL Backendチームにおけるアウトソーシングを有効活用した適材適所爆速開発術について紹介したいと思います!今回の記事ではTRILL開発チーム全体のことではなく、僕が所属するBackendチー…

クラシルのSREをチーム化するときに意識した3つのことと半年間の実績

クラシル
2021-12-21 08:03:14
[SREチーム] [SRE] [クラシル開発チーム]
こちらは、「dely Advent Calendar 2021」21日目の記事です。 昨日は、PdM櫻本さんの「とりあえずやってみる。精神について」という記事でした。 何か新しいことにチャレンジしてみたいと思っている方は、ぜひ読んでみてください! はじめに こんにちは、クラシル開発部SREチームの松嶋です。 今年の10月に「SREがプロダクトの価値を最大化するためにチームとして取り組んできたこと」と題して、私たちが足元課題解決型の体制から脱却し、チームとして効果的に機能するために取り組んできたことについて5つ紹介しました。 tech.dely.jp こちらの記事で紹介している取り組みは、クラシ…

新サービスの動画変換にAWS MediaConvertを利用した話

クラシル
2021-12-20 12:02:37
こんにちは。クラシル開発部でバックエンドエンジニアをしているyamanoiです この記事は dely Advent Calendar 2021 19日目の記事です。 昨日はparayaさんの「delyにAndroidエンジニアとして入社して5ヶ月が経ちました」という記事でした 今回は先日発表させていただいた新サービス「クラシルショート」の動画変換にAWS MediaConvertを利用してみたので Rubyから利用する方法や、実際に使ってみた感想を書きたいと思います! prtimes.jp aws.amazon.com なぜAWS MediaConvertを選択したのか 最初になぜ動画変換にA…

delyにAndroidエンジニアとして入社して5ヶ月が経ちました

クラシル
2021-12-19 03:39:12
この記事はdely Advent Calendar 2021の18日目の記事です。 昨日はumemoriさんのJetpack Composeにおける画面遷移とは?でした。 Jetpack Composeの内部処理にも言及していますので興味のある方は良ければ覗いてみてくださいね🤖 挨拶 軽い経歴 入社を決めたポイント 入社時のオンボーディング 入社して良かった点 メンター制度 情報の透明度が高い 受け身のエンジニアが少ない 5万円の機材購入サポート More まだまだ改善の余地のあるプロダクト 最後に 挨拶 初めまして。delyでクラシルAndroid開発を担当しているparayaです。 7月に…

Jetpack Composeにおける画面遷移とは?

クラシル
2021-12-17 08:00:04
はじめに こんにちは。クラシルのAndroidアプリチームのテックリードのうめもりです。 この記事はdelyアドベントカレンダー17日目の記事となっています。 16日目である昨日はshita-shunさんのswift-algorithmsを初めて触ってみた。という記事でした。ご興味ある方は是非読んでみてください。 Jetpack Composeでは画面という概念が大きく変わる Jetpack Composeの正式版がリリースされて半年ほど経過し、すでに本番プロダクトに投入している方や、現行のプロダクトへの導入を検討しようとしている方などいらっしゃると思います。弊社でも向こう1年以内くらいの導入…

ドキュメント管理をNotionに移行中です

クラシル
2021-12-16 04:36:27
[クラシル開発] [Notion]
どうも、クラシルAndroidエンジニアの@MeilCliです。記事タイトルの通りdelyではドキュメント管理ツールをNotionに移行中で、その作業の一部に関わったのでいろいろと共有しようと思います また、Notion運用を始めたばかりでベストプラクティスにたどり着けていないところがあると思うので、よりよい運用方法の知見があればコメントで共有していただけると助かります はじめに delyではクラシルやTRILLなど様々なプロダクトを開発しています。今までの組織構造は歴史的経緯もあり、クラシルが複数の部門にわかれている一方、TRILLは1つの部門となっていました。そのため先日組織改編があり、カ…

千里の道も一歩から。なクラシル開発

クラシル
2021-12-15 02:05:00
こんにちは!2022年卒予定でクラシル開発部にて内定者インターンを行っている@takeshi_o4です。 この記事はdelyアドベントカレンダー13日目の記事となっています。 (1人だけプロフィールがデフォルト文字になっていて恥ずかしい) 12日目である昨日はサーバーサイドエンジニア高松さんのSnowflakeのSQL APIをRubyで試してみたという記事でした。普段から開発をバンバン引っ張って頂いている高松さんの記事ですので、興味ある方はぜひ見てみてください!! はじめに 今回僕が伝えていきたいことは以下の3点です。 インターンとしてこれまで行ってきたこと インターンで感じたdelyの印象…

SnowflakeのSQL APIをRubyで試してみた

クラシル
2021-12-12 06:23:56
[Ruby] [Snowflake]
SnowflakeのSQL APIをRubyから利用する方法を紹介します。

SwiftUIをクラシルに導入した話

クラシル
2021-12-14 05:18:10
SwiftUIをクラシルに導入した話 こんにちは。これはdely アドベントカレンダー10日目の記事となります。 今年も残りあと少しとなりました。クラシル開発部でiOSエンジニアをしている@yochidrosです。 前回はharry(@gappy50)さんのクラシルでのSnowflakeデータパイプラインのお話&活用Tips でした。 日頃redashを利用して分析をしている中でより便利になっていっているなと感じました!tipsも今後使っていこうと思います! 今日はSwiftUIをクラシルに導入した話を書いていきたいと思います。 背景 2019年に発表されたSwiftUIですが、iOSのバージ…

クラシルでのSnowflakeデータパイプラインのお話&活用Tips

クラシル
2021-12-09 12:30:00
[Snowflake] [データ基盤] [クラシル開発]
はじめに はじめまして。 クラシル開発部でデータエンジニアをしておりますharry(@gappy50)です。 この記事は dely Advent Calendar 2021 および Snowflake Advent Calendar 2021の9日目の記事です。 昨日はうっくんさんからのNotionでJiraを作ろう!というとても興味津々話でした!! やっぱりNotionは色々できるのでいいですね◎ それと私のお話で恐縮ですが、昨日はSnowflakeのイベントSnowdayにてクラシルでのSnowflakeを活用したニアリアルタイム分析の事例についてお話をさせていただきました。 www.sn…

delyに入社して半年が経ちました

クラシル
2021-12-07 02:19:51
挨拶 こんにちは。kurashiruでチラシ機能のサーバーサイドを担当している遠藤です。みんなには訳あって「おぺん」と呼ばれています。 今日はdelyに入って半年経った感想的なのをつらつらと書いていこうと思います。 今年もdelyではアドベントカレンダーを行っており、本記事はその7日目の記事となっています。 昨日は坪田さんの「進撃のプロダクトマネジメント」でした。PdMの心得や考え方、おすすめの本などがわかりやすくまとまっています。 blog.tsubotax.com はじめに まず簡単に僕の経歴について 2019/04~ 不動産テックベンチャー 新卒エンジニアとして入社 SQLずっと書いてた…

GitHub ActionsがAWSのクレデンシャルなしでAWSと連携できるようになったおかげでCIが改善した話

クラシル
2021-12-07 03:19:00
自己紹介 こんにちは、松岡です。 私はコマース事業部でインフラ兼バックエンドエンジニアをやっています。 器用貧乏に幅広くいろいろなことができることを売りにしてきましたが、本格派の方々が続々と加入しているため居場所がなくなりつつあります笑。 この記事はdelyアドベントカレンダー4日目の投稿です。 昨日は偉大なEMのtakaoさんの「delyで働くパパエンジニアの日常を紹介」でした。偉大なEMは偉大な父親でもありました。ぜひご覧ください。 tech.dely.jp 事業の紹介 最初に私が所属するコマース事業部を紹介させてください。 コマース事業部はクラシルデリバリーというサービスを運営しています…

delyで働くパパエンジニアの日常を紹介

クラシル
2021-12-03 09:43:29
こんにちは。クラシル開発部でエンジニアリングマネージャをしている@takaoです。 この記事はdelyアドベントカレンダー3日目の投稿となっています。 昨日の2日目の記事はiOSエンジニア石田さんの「機械学習を使ってUIを補完するAppleの研究の紹介」という記事でした。 先日、社内のiOS勉強会でこの記事の内容をシェアしていただいたのですが、UI検出の手法がおもしろくて図なども分かりやすいのでアプリでの機械学習の活用に興味がある方はぜひご覧ください。 今回は1歳半の子育てをしながら働いている僕が、普段どのように仕事と家庭の両立をしているのかをご紹介したいと思います。 delyは比較的若い会社…

機械学習を使ってUIを補完するAppleの研究の紹介

クラシル
2021-12-02 01:00:01
TRILL開発部のiOSエンジニアの石田です。 今年もdelyではアドベントカレンダーを行っており、本記事はその2日目の記事となっています。 昨日の1日目の記事は奥原さん (@okutaku0507) の「プロダクトマネージャー3年目の教科書」という記事でした。delyのエースPdMである奥原さんによる大作となっていますので是非ご覧ください。 本記事では、機械学習を使ってUIを補完するAppleの研究について紹介します。 AppleはMachine Learning Researchで機械学習に関する様々な研究を発表しています。 その多くはコンピュータビジョンや音声・テキスト認識のような研究な…

関数シグネチャーの衝突を回避する術

クラシル
2021-11-30 04:12:32
こんにちは、えんじにゃーの@MeilCliです。猫よりペンギンのほうが好きです 今回はタイトルの通り名前の衝突を回避するテクニックを紹介したいと思います @JvmName Test.kt: fun method(value: List) {} fun method(value: List) {} ファイルのトップレベルにこういう関数を定義したくなったとします*1 これはJVMにおいてはシグネチャー(名前と引数の形)の衝突によってコンパイルエラーとなってしまいます。どういうことかというとListのジェネリクス要素のStringとIntはランタイム時にはKotlinで言う…

Clean Architectureで考えるAndroidのモジュール設計

クラシル
2021-11-26 08:00:06
はじめに こんにちは。クラシルのAndroidアプリチームのテックリードのうめもりです。 皆さん、Gradleのモジュール機能は活用していますか?ソースコードの依存の方向をモジュール単位で強制出来ることでアーキテクチャーの制約を強制しやすかったり、並列ビルド・差分ビルドの局所化によるビルド高速化を期待できたり、大規模なAndroidアプリを作るにはとても役に立つ機能ですよね。 そんな役に立つ機能ですが、実際どうやって活用していけばいいか分からなくて導入に踏み切れない方や、導入してみたがいまいち恩恵が感じられない、そんな方もいらっしゃるのではないでしょうか。 ところで、Androidアプリを開発…

SREがプロダクトの価値を最大化するためにチームとして取り組んできたこと

クラシル
2021-10-09 10:54:19
[SRE] [SREチーム]
こんにちは、プロダクト開発本部SREチームの松嶋です。 delyのSREチームは、2020年末頃まで最大2人体制の少数で奮闘してきましたが、嬉しいことにこの1年でメンバーが4人と倍増しました。 それまでは、リソース不足であったため足元にある緊急度の高い課題を解決していくことがSREのメインイシューで、長期的に取り組んでいく必要のある改善業務に着手することが困難な状態でした。 しかし、SREのプラクティスを何も実践できていなかった訳ではなく、想定外の複雑さを減らし、今以上に増やさないための文化づくりを意識的にしてきたので、サービスの信頼性が大きく下がることはほとんどなく、アラート対応に追われる状…

#1 dely 新CTO 井上崇嗣 / dely new CTO Takashi Inoue

クラシル
2021-09-27 06:09:31
こんにちは、エンジニアリングマネージャーのtakaoです。 こちらの記事はdely Tech Talk 「#1 dely 新CTO 井上崇嗣 / dely new CTO Takashi Inoue」 の文字起こしです。 anchor.fm 今回の配信では、CXOの坪田さん、コマース事業責任者の大竹さん、新CTOの井上さんの3名に、CTO交代に関するお話をしていただきました。 (細かい相づちや話し言葉など文字起こしの際に編集している箇所があります。話している3名の雰囲気などはPodcastを聞いていただいたほうが感じられると思うので、お時間がある方はぜひPodcastをお聞きください。) 自己…

ShazamKitとAudio Fingerprinting

クラシル
2021-09-16 12:59:22
TRILL開発部の石田です。 WWDC 2021でShazamKitが発表され、楽曲認識アプリであるShazamのリソースを誰でも使えるようになりました。 今回はそのShazamKitの実装例と、Shazamで使われている楽曲認識のアルゴリズムであるAudio Fingerprintingについて紹介したいと思います。 ShazamKitについて スマートフォンなどのマイクから音楽を取り込み、その音楽が何かを教えてくれるサービスの代表格としてShazamがあります。 ShazamKitは、Shazamが持っている膨大な音楽のカタログと、音楽を認識するアルゴリズムを使うことができるライブラリです…