はじめまして、iOSエンジニアの阿久津 @sky_83325 です。 タイミーでは、機能ごとにEmbedded Frameworkに分割して開発するマルチモジュール開発に取り組んでいます。 現在では、本体AppやAppExtensionの他に7つの共通Framework、そして16個の機能Frameworkという規模になってきました。 今回は、そのマルチモジュール開発をEmbedded Frameworkではなく、Swift Packageを利用した方法に乗り換えてみたので、その成果や学びについて共有できればと思います。 取り組んだ経緯・背景 タイミーでは、技術顧問の@d_dateさんと隔週で「ツバメの会」という情報共有の場を設けています。そこでは、直近タイミーで取り組んでいることの共有や相談をしたり、SwiftやiOS、その他エンジニアリングの最近の話題について議論したりしています。 そ
好奇心旺盛な人のためのWebRTC #この本は、WebRTCの実装者が苦労して得た知識を世界に向けて発信するために作成されました。 好奇心旺盛な人のためのWebRTC は、常により多くのことを求めている人のために書かれたオープンソースの書籍です。 この本は抽象化されたものではありません。 この本はプロトコルとAPIに関するもので、特定のソフトウェアについて語るものではありません。 私たちはRFCを要約し、文書化されていないすべての知識を一箇所に集めることを試みます。本書はチュートリアルではないので、コードはあまり含まれません。 WebRTCは素晴らしい技術ですが、使いこなすのは難しいものです。この本はベンダーに依存せず、利益相反を排除するようにしています。 この本は誰のためのものか。 #WebRTC が何を解決するのかさえ知らず、もっと学びたいと思っている開発者。既に WebRTC を使っ
2021年7月16日、ゲーム配信サービス「Steam」を展開するValveが、Steamの全機能を搭載した携帯型ゲーム機「Steam Deck」を発表しました。そんなSteam DeckのOS「SteamOS」が、なぜ当初のValveDebianベースからArch Linuxに変更されたのか、IT系メディアのArs Technicaが解説しています。 Valve’s upcoming Steam Deck will be based on Arch Linux—not Debian | Ars Technica https://arstechnica.com/gaming/2021/08/valves-upcoming-steam-deck-will-be-based-on-arch-linux-not-debian/ SteamOSはValveによりカスタマイズされたLinuxディストリ
対応バージョン この記事の内容は、少なくともGitのバージョン2.19.1までは対応している。 もし最新のGitで新しい動きがあれば随時更新する。 基本 .gitignoreを使うと無視する(Gitのトラッキングの対象外とする)ファイル or ディレクトリを指定できる。 .gitignoreは複数のディレクトリに置くことができる。 深い階層の.gitignoreに書かれた指定の方が優先順位が高い。(後に解釈される) .gitignore内の記述は上の行から順に以下のように解釈される。 /を含まない行(fileなど) .gitignore以下の全サブディレクトリ下にあるこの名前のファイル or ディレクトリを無視する 末尾以外にのみ/を含む行(/file, /path/to/file, path/to/fileなど) .gitignoreが置いてあるディレクトリをカレントディレクトリとする相
VR内でコードを読む 複雑な依存関係も3Dで見える化 3Dのネットワーク状の構造物としてプログラムのコードを視覚化し、さらにそれをVR内で眺めることができるツールを手がけるPrimitiveが、先日、Vive X fundにて開催されたピッチコンテストで発表を行いました。 「Primitive」によって、コードを読むという体験がこれまでのものと一新されるかもしれません。VR内に広がるいわばコードのネットワークの中へ潜り込みながら読むことができそうです。 3Dのネットワーク構造としてコード全容を展望 Primitiveは現在、統合開発環境であるVisual StudioやIntelliJ IDEA向けのプラグインとして開発されています。 プロダクトのコードをまるごと3Dの立体として描画することが可能となっており、コード同士の依存関係などがネットワーク構造として表現されるため、プロダクトのコー
はじめに iOS11から新しくPDFKitが追加されました。以前からMac用のSDKにはPDFKitが含まれていましたが、iOSにはありませんでした。PDFKitの登場前はWebViewなどで表示しており、細かい制御はできませんでした。それが今回のPDFKit追加によって、表示だけではなくて色々な制御ができるようになります。 この記事では、PDFKitの概要と基本的な機能のサンプルをご紹介します。 PDFKitの概要 PDFKitはいくつかのユーティリティクラスに分かれています。 PDFView ビューアー的な機能を持ちます。 PDFDocument PDFデータまたはPDFファイルを指します。PDFデータの書き込み、検索、選択などの機能があります。 PDFPage ページ単位の制御部分です。テキストや注釈、描画にまつわる機能があります。 PDFAnnotation ページの中の注釈部分で
この記事はMikealさんの素晴らしい記事の翻訳版です。 Thanks Mikeal for sharing amazing article, and allow me to translate and share with friends in Japan! ライブラリの保守担当者がさらに前進するための必要性。 LinuxやNode.js等大きく注目されているプロジェクトでは、エンタープライズ、本番運用レベルのユーザが基盤刷新することなく継続して利用できるよう長年にわたってサポートを提供している。 これに影響された多くのプロジェクトで同じような長期間サポートを行うエコシステムができてしまっている。これらのプロジェクトではCI環境にて古いバージョンも維持し続け、万が一古いリリースで動かないようなPRが上がった場合にはBlockしてしまうのである。 私はここで声を大にして言いたい。小さなプロ
5の「振り返り」は以下の項目を検討しておくと良いです。 Idea:アイデア。コンセプト。テーマ。元ネタ What went right:やってみて良かったこと。うまくいったところ。成功したところ。次回に生かせそうなこと What went wrong:ダメだったところ。うまく機能しなかったところ。問題点。改善すべき点 What I learned:学んだこと。効果的なゲームデザインの方法やツールの使い方、獲得したテクニックなど ちなみに最初にリンクを貼った、作ったゲームの各ページの下の方には、振り返りや作成にかかった時間などを記載しています(以下はノンフィールドRPG「OneWay RPG」を作った時の振り返り) Game A Weekで得たもの ということで「Game A Week」を行った結果、私が得たものです。 ゲームを作りながら技術検証できる ゲームを完成させたときの達成感を繰り返
自分でもびっくりしてるいぬさん僕はフリーランスをしながら脱受託を目指してアプリを作って生活しています。だいたい1年のうち7割ぐらいをアプリ作りの時間に充てています。本稿では、Inkdropというマルチプラットフォーム対応のMarkdownエディタを一人で開発して月15万円の売上を達成するまでにやった事を包み隠さずにシェアしたいと思います。 Inkdropの月間売上の推移やったこと概要毎日感じるちょっとした問題を見つける自分自身がこれだ!と思えるまでプロトタイプを作るプライベートβ期間でヘビーユーザを作る継続性を重視して価格をつける決済処理はStripeで楽に実装する良いランディングページを作るユーザサポートを最優先にする自分の得た知見を惜しまずブログに書くクオリティで勝負する批判を全て無視する毎日感じるちょっとした問題を見つける僕は別に特別でもなんでもありません。人は意外と同じ事を感じたり
RBACの基礎 業務システムの権限制御の基本形はロールベースアクセスコントロール(RBAC)です。簡単化すると、以下のようなモデルです。 Subject(システムユーザ)は、複数のRole(ロール)を持っている。 Role(ロール)は、Permission(権限)のセットからなる。 Permission(権限)は、オペレーション(許可される操作)のセットからなる 具体的に、Redmineでの例をみてみましょう。 ユーザにはデフォルトで「管理者」「開発者」「報告者」のロールが割当可能である。 「報告者」ロールは、「Add Issues」の権限をもつ。 「Add Issues」の権限をもつユーザは、「Issueの新規作成」ができる。 このモデルをRedmineでは、以下のように表現しています。 Redmineは1人のユーザを、複数のプロジェクトに異なるロールでアサインすることができるので、上記
先日、モブプロをやってきた。その中で、モブプロとは別で、いくつか感じたことがあって、今日はその中のひとつを思い浮かんだままにメモ。 bufferings.hatenablog.com 要件を満たすプロダクトをより早く出す モブプロでTDDしながら、要件を満たすプロダクトをより早く出すことに集中してみた。例えば、第2ラウンドのお題はTDDBCなどでお馴染みの「自販機」。 「100円を入れてボタンを押すとコーラが1本買えること」 最初に「100円を入れてボタンを押すとコーラが1本買えること」と言われ。 assertThat(get(100), is("コーラ")); みたいなテストを書いて。 String get(int money) { return "コーラ"; } みたいな実装を書いた。爆速! 「200円を入れてボタンを押すとオレンジジュースが1本買えること」 次に「200円を入れてボタ
「Google Cloud Spanner」発表。地球規模の大規模分散環境で稼働するミッションクリティカルなリレーショナルDB。NoSQL並のスケーラビリティでSQL対応、トランザクション処理を実現 Googleは、クラウド上で高度なスケーラビリティを実現する、ミッションクリティカルな業務に対応したリレーショナルデータベースサービス「Google Cloud Spanner」を発表しました。 Google Cloud Spannerは、地球規模の大規模分散処理データベースとして、NoSQL並の非常に高いスケーラビリティと高い可用性、そして高速な処理を実現しつつ、SQLに対応。強い一貫性を持つトランザクション処理も実現。企業のミッションクリティカルな業務にも使えると説明されています。 地球規模に分散したリレーショナルデータベース 一般に、ミッションクリティカルな業務に対応したリレーショナルデ
最近のgitを使ったWebアプリケーションのプロジェクトの開発フロー (主にブランチ運用) について記すものです. なお前提としてGitHub Enterpriseを利用しています. git-flow 大上段に構えたもののあまり特殊なことはしていなくて,基本的にgit-flowをそのまま踏襲しています. git-flowについてはしっかりした解説記事がインターネット上に数多く存在しますからそれらを参考にしていただければと思いますが,ざっくり説明すると masterブランチ,developブランチ,releaseブランチ,featureブランチ及びhotfixブランチがある masterブランチは常にリリース可能な状態になっている (すなわち現在本番で稼働しているアプリケーションのコードと等しい) developブランチは開発中の状態で,ステージング環境等に上がっている releaseブラン
Clock speed: Instructions: Show Hide View: Hex Decimal Register addressing: A: Show Hide B: Show Hide C: Show Hide D: Show Hide
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く