potatotips #80 のLTで発表したもの。 CDN edgeで変換すると便利だけど、avifのご利用は慎重にという話をしたかったけど時間切れになってしまったやつ。
![Image optimization for mobile on CDN](https://cdn-ak-scissors.b.st-hatena.com/image/square/ee086e6a575d4b21c3ce20143cbb0f4c64159140/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F254c02fe4d5642f0a89e344964770263%2Fslide_0.jpg%3F23861331)
OAuthにおける認可コード横取り攻撃とその対策 Jul 5, 2021 前回の記事で示したように、カスタムURLスキームを偽装した不正アプリは正規アプリへのディープリンクを乗っ取れる。この挙動の悪用シナリオとして、正規アプリと認可サーバー間のOAuthフローにおける認可コード横取り攻撃が知られている。この攻撃への対策を把握するためにiOS環境でシナリオを再現し、PKCEの有効性を確認した。 要約 OAuth 2.0の拡張機能であるPKCEを導入することで認可コード横取り攻撃を無効化できる。OAuth 2.0の仕様では、認可サーバーはネイティブアプリをクライアント認証できない。そのため、認可サーバーは認可コードを横取りした不正アプリと正規アプリを識別できない。しかし、PKCEの仕組みにより認可サーバーは正規アプリを識別できるようになり、認可コード横取り攻撃の検知が可能となる。 ネイティブア
こんにちは ハタ です。 今回は Mirrativ の本番サーバの一部に試験導入している MultiPath TCP (MPTCP) について紹介させていただきたいなと思います。 MultiPath TCP といえば、iOSの Siri で利用していることなどで一時有名になりました 今回紹介するMPTCPも同じ技術を使っており、通信の安定化に向けて取り組んでいる事項の紹介になります MPTCP の概要と各OSの実装について MPTCPのイメージ MultiPath TCP (以降 MPTCP)は、複数の経路を通じて同じホストに対して通信が行えるTCP拡張です。 従来のTCP通信では、単一の通信パスしか使えなかったものが、複数の通信パスを利用できるようになります。 例えばスマートフォンでは 4G 回線と WiFi ネットワークが用意されているため、それぞれから同一のコネクション張り、どちらか
「Client と Server があるスマフォゲームを 開発するときに人類が考えておくべき、ほとんど全てのこと」をまとめる構想 これは何 「Client と Server があるスマフォゲームを開発するときに人類が考えておくべき、ほとんど全てのこと」 をドキュメントとしてまとめようと思ったときに、何を書けばいいかをリストアップする場所 (構想を練る目的なので、不完全な内容です) のんびり更新予定 モチベーション 1. 仕事上の実利 職業柄、生きていくために Client / Server 実装があるスマフォゲーム を一定期間をかけてチームで開発することが多い ゲームのチーム開発は要素が多く、先立って考慮しておくべきことも多岐に渡る 「考慮しておくべきことリスト」 を用意しておくことで、考慮漏れによるミスや手戻りを減らす 初心者にとっては抜けていた知識の補完になり、中級者以上にとっても思考
アプリのメンテナンスや告知などを行う機能はすぐには使わないけど、必ず必要になるので最初から入れておきたいですよね。 そのために、。アプリ起動時や復帰時に適当なURLを叩いてJSONを取得して、ダイアログでメッセージを表示する機能を実装しておくといいでしょう。 URLを開くと通常は404が返ってきて、その場合は何も表示しないようにしておきます。 このURLはS3など本体のサービスとは違うドメインとサーバにおきます。 サーバのメンテナンスや不具合でアクセスできない場合には、このURLに適当なJSONを置くようにします。あとこのファイルの多言語化も忘れずに。 JSONの中にはメッセージ本文と、詳細ページのURL、何度も表示するか一度だけかなどを持っておくといいでしょう。 { "message": { "ja": "20時までメンテナンスです", "en": "We have scheduled
こんにちは。A.R.T.でクライアントエンジニアをしている藤尾です。 前回、UnityプロジェクトでのgRPC導入方法についてという記事で、iOSとAndroid環境を含めたgRPCの導入方法について紹介させていただきました。 今回はその環境でのiOSでの速度検証を行いましたので、紹介させていただきたいと思います。 検証環境 アプリボットではゲームのサーバー開発には、主にJSONでのREST APIを用いています。 そこで、gRPCとRESTでのレイテンシを比較します。 サーバー環境 速度検証に利用したサーバー環境は以下のとおりです。 また、通信に用いたデータは、以下のprotoで定義されます。 message ExampleCommonMessage { int32 id = 1; } message ExampleMessage { double double = 1; float f
ミクシィグループではこちらで説明している通り、様々な事業領域にてサービスを展開しています。運営しているプロダクトには10年以上稼働しているシステムもあれば、リリースしたばかりのものまで多岐にわたっているため、様々な技術が各所で採用されています。 多数のサービスを展開していることもあり、改めてミクシィグループの各サービスや事業部が現在どのような技術を採用しているか、技術スタックをまとめてみました。開発言語やインフラ環境、デプロイツールなどをサービス/事業部ごとにまとめています。 【サービスおよび、技術スタック一覧】 ※サービスやプロダクトに該当しないケースは、各事業部で採用している技術を紹介します。 ※2018年8月30日時点での情報です。 ※8月30日に実施された社内イベントの内容を元に作成しています。 その2はこちら スマートヘルス 事業部の取り組み スマートヘルス事業部は、超高齢社会を
Amazon GameSparksとは Amazonが昨年買収したゲーム向けBaaS(Backend as a service)です。 AWS、GCPなどのIaaSより上のレイヤーで展開するサービスで、サーバーインスタンスが隠蔽されたマネージドサービス系になります。 https://www.gamesparks.com/ GameSparksはデータベース、ユーザー認証、マルチプレイ、アナリティクスなど包含するサービス範囲が広いことが特徴です。また、管理画面上でのテストの実行や、ゲーム専用の管理画面を自分で設計できるAPI、クラウド側でjsを実行できる環境など、広いカスタマイズ性があります。 最近こうしたBaaSはGoogleのFirebase, MicrosoftのPlayfab, FJCTのNCMBなど大手IaaSベンダー各社が展開しており群雄割拠という雰囲気です。 AmazonはMS
はじめに こんにちは、株式会社FOLIOという証券会社で開発の方お手伝いさせていただいている@daihaseと申します。 こちらはFOLIO Advent Calendar 20日目の記事になります。 前回はよこなさんによるTrailblazerのReformを使ってRailsのフォームとモデルを分離する でした。 自分はQiita自体2回目の執筆で、前回から1年ぶりくらいなのでどんだけ空いてるんだというのもありますが、少しでも開発に詰まっている方の力になれればと書いてみました。 今回のタイトルにもあります「iOSアプリ開発においての通信処理」、周りの知り合いでもiOSアプリを開発している方は多いのですが、かれこれ数年開発していて何十本とアプリを出しているけど、「通信周りはちょっと...」という方が結構います。 その多くが本業としてiOS開発を行なっていなかったり、または会社勤めではなく完
参考:動画配信プラットフォーム on AWS 2014.05.22 Amazon Data Service Japan 上図の中の HLSがHTTP Live Streamingです。 HTTPストリーミングの配信技術で、全てのプラットフォームに対応していると言えます。 (注1) QuickTime Player 10以上や、るMicrosoft Edge(Windows10)で再生可能です。InternetExplorerでは再生できません。 3 構成 HTTP Live Streamingの構成は、次の図で表現できます。 iPhoneなどのクライアントは、Webサーバに配置された動画ファイルにHTTP(HTTPS)でアクセスします(①)。 Webサーバ上の動画ファイルは、メディアセグメントファイル(.ts MPEG-2トランスポートストリームファイル)と、インデックスファイル(
なんか色々やったんですが,これはひとえにiPhoneではsocksプロキシ設定できないと思ってたからでした. なんていうか,普通にできるんですね.というわけでメモ. 対象サーバにSSH
お久しぶりです、社内で「ラブライブ、紅白出場おめでとうございます」と声をかけられる田村(@Utmrer)です。 私はiOS/Androidのクライアントサイドとサーバーサイドの実装をどちらも担当しているのですが、「ローカルサーバーで開発してるAPIを使いながら、アプリも開発する」ということをよくします。 その時に、アプリ側で通信するhostを本番環境のhostから自分のPCのローカルIP(192.168.1.XX, 10.0.1.YYなど)に変更してローカルサーバーとアプリを通信させていたのですが、IPv6サポートの流れからか、iOS9では出来なくなりました。*1 ローカルサーバーと通信出来ないとぶっつけ本番でデプロイする恐怖や、変更する度に開発環境にデプロイする煩わしさと戦わなければいけません。 それらを避けるためにiOS9でもローカルサーバーと通信する方法をご紹介します。 TL;DR
初めまして、アトラス社内で三人目の小川です。 R小川さんが既にいらっしゃるので、L小川でいきたいと思います。 今日は、弊社で利用しているクラッシュレポート解析ツールをご紹介します。 以前弊社では、システムエラーを検知する仕組みとして、システムエラーの発生時にメールでスタックトレースの通知を受け取るようにしていました。この仕組みでは、ある一つのエラーが複数ユーザの操作によって発生した場合に、そのエラーが発生した回数分メールを受け取ることになります。 そういった状況が積み重なると情報に埋もれてしまい、エラーの発生実態がつかみにくくなってしまいます。 そこでクラッシュレポート解析ツールの出番です。 クラッシュレポート解析ツールの有名なものとして Bugsnag (https://bugsnag.com/) RayGun (https://raygun.io/) Airbrake (https:/
CEDEC-Netの利用上の注意 都合により予告なくサービスを中断することがあります。 無線LAN接続に必要な設定、ウイルス対策、セキュリティ対策等は、各利用者の自己責任でお願いします。 無線LAN回線容量・利用者数・電波環境等により利用できない可能性があります。 携帯型Wi-FiルータやテザリングはCEDEC-Netに影響を及ぼす可能性があるため、ご利用を控えて頂けますようお願いいたします。 CEDEC-Netでの成果について対外発表をすることがあります。 発表における基礎データとして、CEDEC-Netで計測したトラフィックデータを使用することがあります。 個人を特定する情報の収集は行いません。 ネットワーク構成 今年のCEDEC-Netでは、以下の環境を意識したネットワーク設計を行っています(図 1)。 iOSアプリ審査要件準拠のIPv6 onlyネットワーク環境 IPv4アドレス枯
今開発しているPlayer!で、チャット系のリアルタイム更新処理が必要となったので、色々調べています。 ※「スマフォアプリ」として共通事項が多いのでそう表記しましたが、基本的にスマフォアプリはiOSアプリとして書いてます。Android・Windows Phoneなどは差異があったり読み替える必要があると思っています。 結論 後半で詳しく書きますが、今のところ以下の結論に至りました。 PUSH通知に全て依存する構成でもそれなりに動く PUSH通知 + 双方向通信処理(WebSocketなど)の併用がベスト 双方向通信処理はPusher・Firebaseなどのサービスに頼る or ws・Socket.IO・SignalR + 対応クライアントライブラリなどで自前実装 Pusherなど有名サービスのクローンOSS導入も良さそうです stevegraham/slanger edgurgel/po
はじめに これは ドリコムAdventCalendar の1日目です はじめに 1日目:ドリコムを支える中間ポイントシステム 一応自己紹介 プリキュアおじさん 嫁はキュアピース 開発の背景 ソーシャルゲームの歴史 中間ポイントについて 前受金と資金決済法について 有償ポイントと無償ポイント 複雑な売上計算 ドリコムの中間ポイントシステム(dpoint)について 自分の役割 重要なこと dpointが導入されているアプリ 課金フロー iTunesでの中間ポイント購入 GooglePlayでの中間ポイント購入 ポイント消費 dpointのリリースノート gemのボリューム date_discreterというgemを作りました どういうgem? 月の歯抜けを調べる 日の歯抜けを調べる 時間の歯抜けを調べる dpoint改修時のつらみ DBのスキーマ変更する場合は導入してるアプリ全部での影響を調べ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く