sonedayuyaのブックマーク (143)

  • 社内でFlutterを採用しアプリと管理画面を開発した話 #GameWith #TechWith #Flutter - GameWith Developer Blog

    はじめに GameWithのクライアントアプリチームでリーダーをしているkyamです。 その前は価値検証チームというところで、色々新規サービスの事業検証などを行っていました。 先月、Flutterで作成したポケGO最新攻略&レイド招待ツールアプリをiOS・Androidアプリでそれぞれ同時リリースしました。 既にGameWithには各ゲームの攻略情報が閲覧できるGameWithアプリが存在するのですが、今回は特定のゲーム(ポケモンGO)で特定の機能(最新の情報やイベントを記事や通知で都度お知らせする機能)に焦点を当てた、MVP的なプロダクトとしてユーザーに提供を行いました。今後のユーザーの反応や得られるフィードバックによって新機能の追加や改善を検討していく流れになります。 今回はこのようなアプリをなぜFlutterで開発したのか、またどのような技術・設計を用いて開発したのかを簡単に共有しよ

    社内でFlutterを採用しアプリと管理画面を開発した話 #GameWith #TechWith #Flutter - GameWith Developer Blog
  • OpenAPIでスキーマ駆動開発をはじめました - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプエンジニアの中田です。 普段業務ではBOXIL SaaSの開発に従事しています。 突然ですが皆さんはスキーマ駆動に開発されてますか? 直近、BOXIL SaaSにOpenAPIを導入しスキーマ駆動開発を始めたので、今回はその紹介記事です。 導入の経緯や利用方法、メリット等についてご紹介していくので、導入や改善の参考にしていただけると幸いです! OpenAPI Specificationとは 導入の経緯 外部に公開するAPIを作ることになった とても便利なことに気づいた 内部利用のAPIの開発にも利用したくなった BOXIL SaaSでの利用方法 導入ツール OAS SwaggerUI Committee OpenAPIGenerator 導入時に意識したこと 導入で感じたメリット まとめ あとがき OpenAPI Specificationとは OpenAPI

    OpenAPIでスキーマ駆動開発をはじめました - SMARTCAMP Engineer Blog
  • エンジニア組織の課題を解消するためにペアプロ会を定期開催している話 - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプ社でWebエンジニアとして働いている中川(@let_mkt)です。 みなさんは普段ペアプロやっていますか? 今回の記事では弊社のエンジニア組織で定期的に開催している「ペアプロ会」について紹介します! 昨年の夏からこれまでに5回ほど開催してきたペアプロ会の開催までの経緯や概要、メリット、課題などについてが主な内容になります。 リモートワーク下でエンジニア間のコミュニケーションに課題感を感じている方には一例としてご参考になれば幸いです。 そもそもペアプロってなに?という方へ t_wadaさんによる素晴らしいスライドがあるので、ぜひそちらをご参照ください ペアプログラミングの5W1HとFAQ / 5W1H and FAQ of Pair Programming - Speaker Deck ペアプロ会とはなにか ペアプロ会とは、文字通り「ペアプロをする会」なのですが、

    エンジニア組織の課題を解消するためにペアプロ会を定期開催している話 - SMARTCAMP Engineer Blog
  • Chrome DevToolsのAllocation instrumentation timelineでメモリリークを見つける - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプでインサイドセールスに特化したSaaSであるBALES CLOUDを開発しているエンジニアの井上です。 皆さんは、開発・調査などでChrome DevToolsはよく使われているかと思います。 私達の開発するプロダクトでメモリリーク問題が起きたことがあり、 その際に調査方法で知っていれば助けになった内容をまとめていければと思っています。 JavaScriptのメモリ管理とは? GC(ガベージコレクション)とは? メモリリーク問題とGCで開放されないメモリ よく言われるメモリリークの種類 計測に使用したToolについて タスクマネージャー Chrome DevTools Memory Heap snapshot Allocation sampling Allocation instrumentation timeline Allocation instrument

    Chrome DevToolsのAllocation instrumentation timelineでメモリリークを見つける - SMARTCAMP Engineer Blog
  • 2ヶ月でCore Web Vitals, Lighthouseスコアを大幅改善するために行ったこと - SMARTCAMP Engineer Blog

    こんにちは!!!スマートキャンプでエンジニアをしている吉永です! 自己紹介記事はこちら 前回の記事はこちら 私は現在、スマートキャンプの主力サービスであるBOXIL SaaS(以下、BOXIL)の開発にフロントエンド、バックエンド問わず携わっています。 恐らく新年一発目になる弊社テックブログの記事は私の記事ということで、今年もよろしくお願いいたします。 はじめに なぜパフォーマンス改善を行ったのか Core Web Vitals(以下: CWV), Lighthouseとは? CWVとは Lighthouseとは CWV & Lighthouseの改善結果 サービスページ(改善前) サービスページ(改善後) レビューページ(改善前) レビューページ(改善後) 改善をするにあたってチームで行ったこと コミュニケーション的なお話 タスクの洗い出し、調査方法 優先順位付け DatadogやSea

    2ヶ月でCore Web Vitals, Lighthouseスコアを大幅改善するために行ったこと - SMARTCAMP Engineer Blog
  • Cloudflareの画像最適化料金をWorker KVで97%削減した話 - SMARTCAMP Engineer Blog

    BOXILでエンジニアをやっている永井です。前回は入社エントリを書きましたが今回は技術的な記事を書こうと思います。 今回はCloudflareにおける画像の最適化処理のコストカットをした話をします。ざっくりいうとCloudflare内のKVという機能を使い、最適化をした画像をキャッシュしました。似たような問題で悩んでいる方は参考にしてもらえると嬉しいです。 TL;DR Cloudflareで画像のリサイズ(形式変更)を行っていた リサイズ後の画像はデフォルトではキャッシュされず、都度リサイズの処理が実行されていた Cloudflare内のWorker KV機能を使いキャッシュの実装をしたところ、コストがおよそ97%削減できた TL;DR 前提 問題 対策 Workers KVとは 注意事項とか サンプル 事前準備 KVのnamespace作成 KVをworkerに登録 流れ Keyについて

    Cloudflareの画像最適化料金をWorker KVで97%削減した話 - SMARTCAMP Engineer Blog
  • CloudflareのImage Resizingを使ってサクッと画像最適化をする方法 - SMARTCAMP Engineer Blog

    スマートキャンプ、エンジニアの入山です。 皆さんが運営されているWebサイトには、画像が何枚使われていますか? また、その画像たちは最適化(表示領域に対して画像のサイズや画質が適切に設定)されていますか? Webページの評価基準としてCore Web Vitals(CWV)が重要視されている昨今においては、表示速度(Performance)と向き合う機会が増え、配信する画像のサイズや画質にも気を配る必要が出てきました。 しかし、Webサイト上に数多く存在する画像を自前で最適な状態に管理して配信するのは簡単ではないため、対応できていないケースも多いのではないでしょうか。 弊社も画像の最適化には長らく対応できていない状況でしたが、CDNの機能を活用することで比較的簡単に改善できました。 記事では、CDN(Cloudflare)での画像最適化(Image Resizing)について、紹介したい

    CloudflareのImage Resizingを使ってサクッと画像最適化をする方法 - SMARTCAMP Engineer Blog
  • GoのFacebook製ORM"ent"を使ってみた - SMARTCAMP Engineer Blog

    こんにちは。スマートキャンプ エンジニアの中田です。 皆さんはGoORMには何を使われていますか? 有名どころだと機能の豊富なGORMや取得データのマッピング部分だけを担うシンプルなsqlx、 最近だとテーブル定義からモデルコードの自動生成してくれるSQLBoilerなど、Goには多くのORMがあります。 筆者のORM遍歴は以下のようになってます。 Active Record(Ruby on Rails): 2年ほど GORM(Go): 半年ほど 弊社のプロダクトのバックエンドはRuby on Railsで作られているものがほとんどです。 Ruby on Railsを利用しての開発経験が私のキャリアの大半を占めていることもあり、個人的にActiveRecordのような機能の網羅率の高いORMには安心感を覚えます。 半年前から新規で開発を始めたプロダクトにて、新たにGoを利用し始めました。

    GoのFacebook製ORM"ent"を使ってみた - SMARTCAMP Engineer Blog
  • テストコードのあるきかた 〜歩きはじめ方〜 - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプ21卒エンジニアの関口です。私は9月にBALES CLOUDというSaaSを開発するチームに移動しました。 突然ですが皆さんはテストを書いていますか? 私は今まであまり真摯にテストを書いてきませんでした。しかし直近で開発チームを移動した際にテストについて学ぶ機会があり、心機一転しテストと向き合うようになりました。 今回の記事では私がテストに向き合う中で学んだことをまとめていきます。 テストを書くことを意識した経緯 テストの必要性 自動テストについて 自動テストの種類 自動テストのメリット・デメリット メリット デメリット 実際にテスト書いてみる テーブル定義・プロダクトコード テスト まとめ テストを書くことを意識した経緯 前述したとおり、今まで私は真摯にテストと向き合ってきませんでした。なぜなら、テストを書くよりも開発に工数を充てる方が効率的なのではないかとい

    テストコードのあるきかた 〜歩きはじめ方〜 - SMARTCAMP Engineer Blog
  • 【入社エントリ】巡り巡ってコミュニケーションに向き合うエンジニアのお話 - SMARTCAMP Engineer Blog

    ご挨拶 2021年9月にスマートキャンプ株式会社に入社しました林です! そろそろ入社して1ヶ月が経つので、入社した経緯や入社してみて感じたことを、熱のこもった自己紹介と共に振り返っていこうと思います。 ご挨拶 これまでの経歴 学生時代から就職まで 就職からスマートキャンプへの転職まで なぜスマートキャンプを選んだか コミュニケーション能力を鍛えられそう チーム開発を通して切磋琢磨できる環境がありそう リファラルについて 入社してみて コミュニケーションはやっぱり多い 前職との違い 技術 仕事の進め方 入社後にしてたこと 抱負 まとめ これまでの経歴 初カキコ…ども… って感じで半生を振り返りながら、自由に経歴を記してみようと思います。 要約としては以下のような経歴でこれまで歩んできております。 大学を卒業 → 中小インフラSIer(2年) → 受託開発会社(10ヶ月) → 建設系スタートア

    【入社エントリ】巡り巡ってコミュニケーションに向き合うエンジニアのお話 - SMARTCAMP Engineer Blog
  • ArtilleryでServerlessな負荷試験を試してみた - SMARTCAMP Engineer Blog

    スマートキャンプ、エンジニア井上です。 突然ですがみなさん、負荷試験はどのように実施していますか? 私はJmeterなどで負荷試験をすることがあるのですが、テスト作成からテスト実施までがとても時間がかかり継続的にやるのはかなり大変だなと感じてます。 そんなときに見つけた、負荷テストツールArtilleryについて簡単にご紹介できればと思います。 Artilleryとは Artilleryで負荷試験を実装してみる 事前時準備 まずはクイック実行 yamlからテストを実行する テストを実行する さらに高負荷にしたい Serverless-artilleryとは Serverless-artilleryで負荷試験をする利点 Serverless-artilleryを準備する AWSにデプロイする Lambdaでのテスト実行 Github Actionsで実行する まとめ Artilleryとは

    ArtilleryでServerlessな負荷試験を試してみた - SMARTCAMP Engineer Blog
  • TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog

    みなさん、WebAssembly聞いたことありますよね? スマートキャンプでエンジニアをしている瀧川です。 私が初めてWebAssemblyを目にしたのは確か2018年、VimWebAssemblyに移植してブラウザで動くようにしたという記事だったかなと思います。 https://github.com/rhysd/vim.wasm 当時は「はー、なんだか未来を感じるけど、どう使われてくんだろう」くらいな認識で、最近までほとんど注目していませんでした。 しかし、少し前にffmpeg.wasmについての記事がバズっているのを見かけたときビビっときましたね。 ブラウザ上でffmpegが動かせるのはWebアプリケーションを作る上で可能性が広がりますし、何よりWebAssemblyのポテンシャルが活かされていると感じました。 そこで今回、WebAssemblyの世界観を味わうために、代表的なWeb

    TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog
  • SIerからベンチャーへの転職を通して自分と向きあった話 - SMARTCAMP Engineer Blog

    はじめまして!2021年7月にスマートキャンプに中途社員として入社した井上です! 入社時から現在まで、BOXILの開発業務に携わっています。前職はSIerで顧客のシステム開発や新規プロダクトの開発などをしていました。スマートキャンプ、前職ともにフロント・バックエンド問わず開発をしていますが、スマートキャンプでは使用技術や開発するサービスの形態が前職と大きく異なり、新鮮な気持ちで業務に取り組めています。 今日は入社エントリーとして、私の経歴を含めた自己紹介と、なぜスマートキャンプに入社したか、そして入社後のギャップをメインに書いていこうと思います。 これまでの経歴 スピード感のある開発がしたい 技術的なチャレンジ なぜスマキャンを選んだか プロジェクト運営 技術的なチャレンジ 面接 入社してみて 前職との違い コミュニケーションが「密接」 開発スタイル 入社して感じたギャップ コミュニケーシ

    SIerからベンチャーへの転職を通して自分と向きあった話 - SMARTCAMP Engineer Blog
  • Go製のREST APIにUnitテストを追加した話 - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプ、エンジニアの中田です。 以前書いた記事の内容に引き続き今回も、現在業務で利用している Go のお話しです! 以前の記事 tech.smartcamp.co.jp 突然ですが、みなさんはテストを書かれてますか? 僕も「書いてます!」と声を張りたいところですが、4 月に新卒入社をしてから開発を始めた Go 製の API には何を隠そうテストがございません...。 開発初期は API へリクエストを手動で送りテストするような運用で特に事なかったのですが、開発が進むにつれコード差分による影響範囲が網羅できなくなったり、またそれにより大きな変更がしづらくなったり、とテストがないことによる悪影響が徐々に出現してきました。 そこで、テストを書こう。と思い立ってはみたものの、GoAPI のテストってどう書くんだろう?と困ったのでその辺りを調査しながらサンプルアプリを実装

    Go製のREST APIにUnitテストを追加した話 - SMARTCAMP Engineer Blog
  • 異動先の開発チームに高速で適応する技術 - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプでWebアプリケーションエンジニアとして働いている中川です。 さて、唐突ですがみなさんは別の開発チームに異動した経験はありますか? いくつかプロダクトを抱えていたり受託開発をしている会社では割とよくある現象なので、少なくない数の方が経験されたことがあるかなと思います。 と、この書き出しで察しの良い方はお気づきかと思いますが、かくいう自分もこの度チームを異動して、6月からBOXIL開発チームで働いています。 今回の記事では、自分が新しいチームに参加することになったときにどういうキャッチアップを行っているかについてご紹介していこうと思います! また、今回の記事で前提としているのは異動のシーンですが、転職でも通ずるような内容は多いと思っています。 キャッチアップする目的を考える なにをキャッチアップしていくか考える プロダクトに慣れる ビジネスモデルを知る 使われてい

    異動先の開発チームに高速で適応する技術 - SMARTCAMP Engineer Blog
  • リーンコーヒー(Lean Coffee)のすすめ - SMARTCAMP Engineer Blog

    スマートキャンプのプロダクトマネージャーの郷田です。 皆さんは普段の業務で、以下のように感じる場面はありませんか? - 「同じチームで働くあの人と、いつもなんだか認識がずれてるかもと感じる」 - 「一通り会議はやったものの、なんだかいまいち話しきれてないようなモヤモヤがある」 - 「あの人にはもっと注力してもらいたいことがあるのに、なかなかそこまでやってもらえない」 こういった場面に遭遇したときには、リーンコーヒーを実施されることをおすすめします! この記事では、チームのMTGで活用してみていただきたい「リーンコーヒー」を紹介します。 リーンコーヒー(Lean Coffee)とは? リーンコーヒーの進め方 準備するもの その1:トピック出しと優先順位の決定(5分~15分) その2:トピックのディスカッション(10分〜45分) 初めてのリーンコーヒーでのハマりどころ 継続するかの判断をせずに

    リーンコーヒー(Lean Coffee)のすすめ - SMARTCAMP Engineer Blog
  • インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog

    こんにちは!今年の 4 月からスマートキャンプに入社し、只今新卒エンジニア研修期間中の中田です。記事は、インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた!という内容のエントリです。 背景 gRPC とは Protocol Buffers とは 4 つの通信方式を試してみた 実装 準備 インターフェース定義 コンパイル サーバーとクライアントの実装 UnaryCall ClientStreamingCall ServerStreamingCall BidirectionalStreamingCall ドキュメント生成 学び まとめ 背景 新卒エンジニア研修では、同期のメンバーと 2 人で Go (REST API) + React/TS 構成の SPA を作っています。 このアプリの開発では、Server - Client 間でインター

    インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog
  • 待望!Amazon ECSのコンテナにログインできるAmazon ECS Execを試してみた - SMARTCAMP Engineer Blog

    スマートキャンプ、エンジニアの入山です。 前回のブログにも書きましたが、弊社では昨年末から既存のEC2からECS/Fargateへのインフラ移行作業を実施しています。 EC2からECSへ移行する上では、特に運用面が大きく変わります。利便性やメンバーへの教育コストを考慮すると、今までEC2でやっていた運用をECSでどう上手く代替するかが力の入れ所だと思います。 一ヶ月前に弊社インターンの関口が書いた以下の記事も、既存運用の置き換えやデバッグ時の利便性向上を目的とした手段の1つで、この記事を執筆した時点ではECS/Fargate上のコンテナに対するAWS公式のログイン手段はありませんでした。 tech.smartcamp.co.jp 弊社のECS移行も稼働直前の佳境を迎えている最中ですが、この度Amazon ECS Execがリリースされ、待ち望んでいたECS/Fargate上のコンテナに対す

    待望!Amazon ECSのコンテナにログインできるAmazon ECS Execを試してみた - SMARTCAMP Engineer Blog
    sonedayuya
    sonedayuya 2021/03/17
    良さそう
  • AWS Fargateで動いているコンテナにログインしたくて Systems Manager の Session Manager を使ってみた話 - SMARTCAMP Engineer Blog

    こんにちは!スマートキャンプの21卒の内定者としてエンジニアインターンをしている関口です! 私はBOXIL開発チームに所属しており、現在BOXILのインフラ基盤をAWS EC2からAWS ECS/Fargateへ移行するプロジェクトを行っています。 この記事ではそのプロジェクトを通して得た技術的な知見を共有していきます。 移行前、移行後のインフラ基盤の紹介 ECSとFargateの概要 基盤構築の際に詰まったこととその解決策 Fargate運用することの課題 Fargateのコンテナへログインするための概要 具体的なコンテナログインのやり方 amazon-ssm-agent、AWS CLIのインストール アクティベーションの作成、コンテナのマネージドインスタンスへの登録、SSMエージェントの起動 おわりに 移行前、移行後のインフラ基盤の紹介 現在のBOXILのインフラ基盤はEC2で運用が行

    AWS Fargateで動いているコンテナにログインしたくて Systems Manager の Session Manager を使ってみた話 - SMARTCAMP Engineer Blog
  • 技術試験をなぜするのか - SMARTCAMP Engineer Blog

    こんにちは、スマートキャンプのエンジニアの瀧川です。 私はこのブログではBigQuery大好き芸人としてよく記事を書いてますが、実は普段の業務では30%くらいの時間をエンジニア採用に割いております。 今日は弊社で実践している技術試験及び技術面接について、どのような目的を持ってどのように設計したか、またそこにかける思いを書かせていただこうと思います。 弊社に興味を持っていただき選考を受けようとしている方はもちろんですが、自社で技術の見極めに課題がある採用担当者の方などにも参考になれば嬉しいです! ※ 今回は中途採用に限って書いていきます。 ※ 弊社の採用フロー全体については別途エントリーがあるので、興味があれば見てみてください。 tech.smartcamp.co.jp 背景 現在の選考フロー 技術面接で知りたいこと いままでの課題 課題解決のために事前技術試験の導入 導入した技術試験の構成

    技術試験をなぜするのか - SMARTCAMP Engineer Blog