ブックマーク / inside.pixiv.blog (105)

  • pixiv chatstoryのiOSアプリをReact Native(Expo)でリニューアルしました! - pixiv inside

    こんにちは、福岡オフィスでpixiv chatstoryの開発を担当しているtawachan(@tawachan39)です。 前回「デザイナーでも書けるReact Native」と題して、React Nativeでの開発模様を書かせていただいたのですが、先日無事リリースをすることができました(!)ので、今回はその小話を書いていければと思います。 特に、React Nativeでアプリを作ることに興味があったり実践登用することを検討している人にとって参考になることがあれば幸いです。 リニューアルのきっかけ pixiv chatstoryは既存のSwiftで書かれていたアプリをReact Nativeで書き換えるだけでなくデザインのリニューアルも行っていました。そのきっかけや経緯について簡単に紹介します。 Swiftのコードをメンテナンスするのが大変でWebの技術で置き換えたかった 現在のpi

    pixiv chatstoryのiOSアプリをReact Native(Expo)でリニューアルしました! - pixiv inside
  • モバイルアプリのCIをBitriseにして1年が経ちました - pixiv inside

    こんにちは。ピクシブでiOS・Androidアプリ開発をしているkwzrです。 ピクシブでは2018年1月からモバイルアプリのCIをBitriseに切り替えて、約1年間運用してきました。この記事ではピクシブでのBitriseの使用状況を紹介していきます。 Bitriseとは Bitriseはモバイル向けのCIサービスです。ネイティブのiOS、Androidはもちろん、XamarinReact Native、Flutterなどクロスプラットフォームのプロジェクトにも対応しています。 ビルドの流れ(ワークフロー)やビルドトリガーをGUIで設定できたり、モバイル向けの機能が充実しています。 Bitrise導入以前 Bitriseを使う前は、macmini 3台を使ってJenkinsでCIを走らせていました。 その時の記事はこちら → Mac mini増殖中!iOSアプリのビルドをマスター・スレ

    モバイルアプリのCIをBitriseにして1年が経ちました - pixiv inside
  • iOSの設計を語り尽くす夜、「iOSアプリ設計ナイト」を開催しました #pixiv_ios_arch - pixiv inside

    おばんです、最近買ったボイスチェンジャーの力によって可愛い女の子(の声)になりつつある田中です。 先日1月15日に書籍『iOSアプリ設計パターン入門』の発刊を記念して、弊社主催で「iOSアプリ設計ナイト」という勉強会を開催しました。今回はそのレポートをお送りします。 ビールでカンパイ イベントは乾杯からスタート。iOSDCでビール舌の肥えたiOSエンジニアの方でも満足いただけるように、美味しいビールをご用意いたしました( ˘ω˘ ) 設営完了しました!お待ちしております! #pixiv_ios_arch pic.twitter.com/bfgqremRja— Atom(アトム) (@FromAtom) 2019年1月15日 ここから先は今回行われた5つの発表の内容と感想をお送りします。 「2つの同期 4つの状態」 @ktanaka117 2つの同期 4つの状態 #pixiv_ios_arc

    iOSの設計を語り尽くす夜、「iOSアプリ設計ナイト」を開催しました #pixiv_ios_arch - pixiv inside
  • かんたん!大型プロジェクトをPERTで把握する知見 - pixiv inside

    こんにちは。saki( @yensaki )です。 社内では pixivFACTORY の開発リーダーとRailsエンジニアをしています。 さて、プロダクト開発では時折、開発メンバー全員で数ヶ月かけるプロジェクトもあると思います。pixivFACTORY でもそのような取り組みはあり、何十個ものタスクが発生します。このようなプロジェクトの進め方は多種ありますが、今回は私が行っている手法を紹介いたします。 フロー 開発フローの概略としては下記のような流れです。 タスクリストを書き出す 見積もりを立てる PERT図を作成する 見直しを繰り返す タスクリストを書き出す まずは開始時点で判明しているタスクリストを書き出します。これはWBSで一般的に行われていることですのでざっくりとだけ紹介します。大まかには洗い出し・細分化を行っています。 洗い出し プロジェクトの初期段階ですべてのタスクを洗い出す

    かんたん!大型プロジェクトをPERTで把握する知見 - pixiv inside
  • pixiv Bug Bounty Program 2018 - pixiv inside

    こんにちは、セキュリティエンジニアのkoboです。ピクシブでは2016年より脆弱性報奨金制度を運用していますが、2018年度に入ってから報奨金の増額や新しいプラットフォームへの参入など、これまでに増して注力しています。記事では、最近のピクシブの脆弱性報奨金制度の動向と実際に報告された脆弱性の例を紹介していきます。 pixiv Bug Bounty Programの概要 期間: 2016/04〜 支払い済み報奨金総額: 300万円程度 報告総数: 294件 ピクシブでは2年半ほどに渡って脆弱性報奨金制度を実施してきましたが、2018年に入ってから脆弱性報告の件数、クオリティ向上の為に2つの重要な変更を行いました。 報奨金の増額 脆弱性を報告するハッカーに対してこれまでよりも高いインセンティブを提供することで報告を促すため HackerOneへの参入 世界最大のバグバウンティプラットフォーム

    pixiv Bug Bounty Program 2018 - pixiv inside
  • Rubyコア最前線 pixiv inside出張版 - pixiv inside

    皆さんこんにちは。最近はGoでコードを書いてることが多いですが、実はRubyコミッターという肩書も持っているusaです。 Rubyといえば、毎年クリスマスの頃に新バージョンがリリースされる事が多いですね。 もちろん今年も、Ruby 2.6のリリースが予定されています。 新しいRubyではどんな変更が入るのか、ということに興味がある方も多いかとは思いますが、そういった記事は探せばたくさん見つかると思います。 稿ではそういう話ではなくて、Rubyにどんな変更が入るのかがどうやって決められているのか、ということを紹介します。 Ruby開発者会議 普段から皆さんの目に触れるWebサービスなどで広く使われているRuby。もちろん、ピクシブ社内でも様々なサービスがRubyで作成され、ユーザーの皆さんに向けて提供されています。 コミッター さて、当然のことながら、Ruby自身もプログラムですから、誰か

    Rubyコア最前線 pixiv inside出張版 - pixiv inside
  • デザイナーでも書けるReact Native - pixiv inside

    こんにちは、福岡オフィスで現在pixiv chatstoryの開発を全般を担当しているtawachan(@tawachan39)と申します。時にはRailsを書き、時にはAngularを書き、ごくまれにSwiftを書いたりとサービスのために日々開発しております。 さて、今回はReact Nativeに関するお話です。最近はReact Nativeでアプリをゼロから書いているのですが、その時にデザイナーのメンバーにも実際にコードを書いてもらったらとても良かった!という話を紹介していきたいと思います。 そもそもデザイナーにコードを書いてもらおうと思った経緯 当たり前といえば当たり前なのですが、実際にデザインを作ったデザイナーのほうが細かな意図を把握しています。 なので、エンジニアがとりあえずデザインを見たまま実装すると、 エンジニアは重要じゃないと思って雑に作ったら実は重要だった 逆に重要と思

    デザイナーでも書けるReact Native - pixiv inside
  • ピクシブフロントエンド互助会の取り組み - pixiv inside

    どうもこんにちは @f_subal です。普段は pixivFACTORY のフロントエンドを見ています。 最近は ruby-sass の deprecation に悩みながら dart-sass を調べたりしています。 さてさて、みなさん日々の開発にあたってフロントエンドの悩みや知見、気になるニュースなどが溜まっているかと思います。あのライブラリを試したい、あれアップデートしたらハマったので誰かに相談したい…そんなときに社内に頼れる仲間がいると心強いですよね。 というわけで、日はピクシブエンジニア組織における「フロントエンド互助会」の取り組みについてご紹介します。 ピクシブにおけるエンジニア互助会 ピクシブでは2017年まで、システムを超えた共有事項や障害報告や最近の挑戦について話す「技術互助会」というミーティングがありました。初期は全社員の参加でしたが、その後エンジニア全員参加・発表

    ピクシブフロントエンド互助会の取り組み - pixiv inside
  • SpringBootでさくっとVue.jsを使う - pixiv inside

    こんにちは。@orekyuuです。Javaが大好きなエンジニアですが、入社してからはずっとRailsエンジニアをやっていました。最近はJDK11+SpringBootでサクッとWebアプリを立ち上げる仕事を始めたので、SpringBootの話を書いてみます。 今作っているアプリではThymeleafというテンプレートエンジンでレンダリングしています。ほとんどのWebアプリではformの内容を入力によって表示を変えたりしたいといったケースでJavaScriptを使ってDOM操作をしたくなります。今はjQueryという時代でもないので、ちょっとしたDOM操作をVue.jsを使って操作できると便利そうです。 Vue.jsを使う準備 webpackの設定を書く package.jsonとwebpack.config.jsを用意します。ほぼ普通のjsプロジェクトと同じだと思います。 ポイントはout

    SpringBootでさくっとVue.jsを使う - pixiv inside
  • Closedなesaの記事URLをSlackに貼ったら展開されるようにした - pixiv inside

    みなさんこんにちは。@FromAtomです。去年のアドベントカレンダーでは、 『【esa】社内ドキュメントツールのホッテントリを分かるようにしたら捗った話 』を書きました。今年もesaの話です。以前、中の人にインタビューしていただいた こともあるのですが、ピクシブではesaという情報共有サービスを利用しています。 社外秘の情報も書かれているためClosedなesaとして運用しており、もちろん外部の人はアクセスすることができません。そのため、Slackにesaの記事URLを貼っても展開機能が使えません。「それはそう」という感じなのですが、下の画像のPublicなesaのように、URLが展開されたほうが便利ですよね。 そこで、Slack AppのUnfurling links in messagesという機能を利用して、社内Slackに貼られたClosedな社内esaのURLでも展開できるよう

    Closedなesaの記事URLをSlackに貼ったら展開されるようにした - pixiv inside
  • ピクシブSlackの「今日のアニメボット」 - pixiv inside

    こんにちは、 @sue445 です。 今期の推しアニメは HUGっと!プリキュア と キラッとプリ☆チャン と サザエさん です。 ピクシブでは今までは業務に直接関係ないチャンネル(いわゆる雑談など)は作成しないルールが採用されていました。しかし、ドメイン知識を高めるために業務に直接関係ないこと(たとえばアニメ、ゲーム、ラノベなど)でも情報共有したいという意見があり今年の10月頃にそのルールが緩和されました。 その一環でアニメについて語るチャンネルができたのですが、前職のチャットにあったとあるボットがほしくて作りました。 下のスクショがボット作成直後の同僚の喜びの声です。 見ての通り、これから放映されるアニメの一覧を教えてくれるボットです。 上記は初期バージョンなので色々古いですが、最新だとこんな感じです。 しょぼいカレンダーのAPI では新番組や再放送などの情報も取れるので、新聞の番組欄

    ピクシブSlackの「今日のアニメボット」 - pixiv inside
  • t-wadaさんから直接学ぶ!TDDワークショップ開催レポート - pixiv inside

    みなさんこんにちは!ピクシブで唯一(?)のテストエンジニアの @shimashima です。 6月28日にTDDの伝道師として有名な t-wada こと和田卓人さんを講師として招き、1日かけてのテスト駆動開発(以下TDD)ワークショップを開催しました。 日はピクシブ株式会社様にて、1日コースのテスト駆動開発ワークショップの講師を務めさせていただきました。ご参加くださいました皆様、誠にありがとうございました!— Takuto Wada (@t_wada) 2018年6月28日 今日はその様子を紹介したいと思います。 開催のきっかけ 開催のきっかけは、自分が実行委員を務めているJaSST '18 Tokyoにて和田さんによるTDDチュートリアルを聞いたことです。 このチュートリアルの登壇依頼を行なったのも私なのですが、恥ずかしながらそれまでTDDは話に聞いただけで、各地で開催されているTDD

    t-wadaさんから直接学ぶ!TDDワークショップ開催レポート - pixiv inside
  • BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside

    2020/12/25 編注:この記事は2018年当時のエピソードです。現在はこの方法では審査に通らなくなりました。 おばんです、給料日であることをいいことに、にじさんじくじに課金しまくったBOOTH iOSエンジニアの @danbo-tanaka です。 平素よりBOOTH iOSアプリをご贔屓いただき、ありがとうございます。 みなさんもうアプリをアップデートしていただけましたでしょうか? 8月16日(木)にリリースしたv2.12.0では、これまで要望の多かった有料ダウンロード商品の販売を実装しました!🎉 これまでiOSアプリにおいて、デジタルコンテンツの購入に対応したアプリは多くありませんでした。それはAppleが用意したアプリ内課金(通称Apple税。手数料として30%をAppleに支払う必要がある支払い方法)を通さなければ、基的にデジタルコンテンツの取り扱いが許されなかったという

    BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside
  • 永久保存版Railsアップデートガイド - pixiv inside

    はじめまして、2018年7月入社の sue445です。自称「フルスタックキュアエンジニア」です。最近はpixiv PAYのチームでRailsを書いたり社内gemを作ったりしています。 好きなプリキュアはキュアピースです。 前置き 先日Rails 5.2.1がリリースされました https://weblog.rubyonrails.org/2018/8/7/Rails-5-2-1-has-been-released/ pixiv PAYでもその対応を行っていて、先日番環境にRails 5.2.1を投入しました 💪 ググると特定のバージョンでのアップデート方法はいろいろ見つかるのですが、どのバージョンでも使える汎用的な方法が意外になかったので紹介しようと思います。 Rails 4.1系以降はだいたいこの方法でアップデートしてきたのでそれなりに実績のある手法だと思います。 筆者スペック 初め

    永久保存版Railsアップデートガイド - pixiv inside
  • BigQueryを使ったレコメンド改善事例とその仕組み - pixiv inside

    pixiv運営部、おすすめ改善チームのogaです。pixiv上で最近行った、イラストのレコメンド改善事例とその技術的な部分について紹介します。 概要 今回の取り組みでは、ブラウザ版pixivのトップページなどに表示しているイラストの「おすすめ作品」機能に対して、「最近投稿された作品を優先してレコメンドする」という変更を加えました。 この施策は以下の2点を期待して実施したものです。 作品を閲覧しているユーザーが、投稿されたばかりのイラストをより多く見られるようになること 作品を投稿しているユーザーが、最近投稿した作品への反応をより多くもらえるようになること 背景としては、ユーザーがトップページを訪問する際、同じ作品が何度も表示されているという状況がありました。 ある日におすすめ作品として表示されたイラストの、投稿時期別の割合を下に載せました。何ヶ月も前に投稿されたイラストが7割を占めている

    BigQueryを使ったレコメンド改善事例とその仕組み - pixiv inside
  • 「一斉Slack channel整理タイム」のご紹介 - pixiv inside

    VP of Engineeiringのbashです。 最近ふと思いついて実施した、「一斉Slack channel整理タイム」を紹介します。 これは、皆でタイミング合わせて、channelから抜けたり、アーカイブしたりしようと全メンバーに呼びかけたものです。 きっかけ ふと自分が入ってるSlackのchannel一覧をみると、長大なリストになっていることに気が付きました。 普段から、自分自身としてSlackとうまく付き合っていこうと工夫してきたつもりでした。 アクティブに動く必要のあるchannelはスターを付ける 普段あまり発言しないchannelはミュート状態にする 読むだけのchannelには入らない これらによって読まなければならないもの峻別することで、Inbox Zeroの状態を維持しているため、健全なSlackの使い方が出来てるのではと思っていました。しかし、いつしか長大になっ

    「一斉Slack channel整理タイム」のご紹介 - pixiv inside
  • pixivのHTTP/2有効化の軌跡 - pixiv inside

    @catatsuyです。普段はpixiv技術的な改善や広告周りを見ています。今回はHTTP/2の話を紹介します。 HTTPS化とHTTP/2について 以前紹介したようにpixivは2017/4/18にHTTPS化を完了していました。 pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside pixivを常時HTTPS化するまでの道のり(後編) - pixiv inside 昨今ブラウザで使える新しい技術はHTTPSが必須要件とされることが多くなりました。その中の代表格がHTTP/2です。HTTP/2自体はHTTPSを要求していませんが、実際にはHTTPSでなければブラウザ側で有効にならないため必須です。 HTTP/2に対応するメリットは他の詳しい記事を参照して欲しいですが、ざっくり以下のメリットがあります。 HPACKという仕様でハフマン符号を使ったHTTPヘッ

    pixivのHTTP/2有効化の軌跡 - pixiv inside
  • 最速で見つけて最速で解決!障害対応を高速化する工夫と文化 - pixiv inside

    こんにちは、プロモーション戦略室のikariです。ピクシブの各サービスの集客・販促を行う傍ら、Twitterほか各種SNS上にあるpixiv公式アカウントを使ったユーザーアナウンスを担当しています。 さて、Webサービス開発に携わっている方であれば誰しも経験するであろう、自社サービスの「障害」。私自身も、これまでに何度か障害対応を行ってきました。 普段から障害を起こさない工夫をしておくことは当然として、それでも起きてしまう障害に対しては、ユーザーに不利益が生じる時間を極力短くすることを目指し、最速で対応して解決にあたっています。 今回の記事では、「問題の早期発見」と「迅速な解決」に効く、ピクシブの障害対応時の工夫についてご紹介します。 障害の発生を見逃さない ポイント: エラーログ&Slackで兆候を察知しよう ピクシブでは、デプロイ後の異常を見逃さないよう、デプロイを行ったエンジニアがエ

    最速で見つけて最速で解決!障害対応を高速化する工夫と文化 - pixiv inside
  • WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside

    2024年4月26日追記 WEB+DB PRESS総集編[Vol.1~136]が発売されたので、今後はぜひこちらをお買い求めください gihyo.jp pixiv運営技術基盤チームのうさみけんた(@tadsan)です。 2018年4月26日に技術評論社さまからWEB+DB PRESS総集編 [Vol.1~102]が発売されます(一部書店には既に並んでいるようです)。これは2000年12月に発売されたWEB+DB PRESSの創刊号から102回までの全バックナンバーのPDFを収録した、超大ボリュームの総集編(WEBからもダウンロード可能)です。 17年に及ぶWEB+DB PRESSの歴史の中で、ピクシブ株式会社も2014年から2017年までの間、連載企画『PHP大規模開発入門』を執筆・掲載させていただきました。 連載記事一覧 連載各回の内容は以下の通りです。 Vol.80 「モダンな開

    WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside
  • 熟練のRubyコアコミッター、ピクシブに立つ - pixiv inside

    「プログラミング言語Rubyのコアコミッター・中村宇作氏を採用しRuby開発とImageFlux開発を加速します」のニュースで既報の通り、Rubyのコアコミッターを務められているusaこと中村宇作が入社しました。 聞き手はニュースの写真にも登場している、bashこと執行役員 技術マネジメント室長 小芝です。 プロフィール 1973年生まれ、富山県出身。 2000年よりRubyの開発に携わり、現在は主にWindows版の開発および安定版の保守を担当。Ruby公式サイトに世界で一番多く記事を書いている人。 RubyKaigi2013スピーカー、大江戸Ruby会議05キーノート。 TRICK 2013、TRICK 2015 入賞者。 好きなメソッド: Enumerable#map 座右の銘: ケセラセラ GitHubTwitter ID: @unak 自己紹介 まずは自己紹介をお願いします。

    熟練のRubyコアコミッター、ピクシブに立つ - pixiv inside