サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
qiita.com/usamik26
「0xProto」フォントとは 「0xProto」フォントは、プログラミング向けのフォントです。文字の読みやすさを重視しています。 最初のリリースは2023年5月で、その後も何度かアップデートされています。 1.000:2023年5月 1.300:2023年10月、Nerd Fonts 3.1.1に含まれる0xProto Nerd Fontのベース 1.500:2023年12月 この記事は、0xProto 1.500をもとに書かれています。 (2024-05-21 追記)現在の最新バージョンは2.001になっています。なお、MacではHomebrewでのインストールが可能になっています。 2.000:2024年5月 イタリック体が追加 プログラミング向けのフォントとは プログラミングにおけるフォント選択は、単なる見た目だけの問題ではなく、それ以上の意味があります。ソースコードが読みやすくな
AdditiveArithmetic とは AdditiveArithmetic は Swift 5 で新しく導入された protocol です(SE-0233)。 Swift には数に関する protocol がいくつもありますが、そのうちのひとつに Numeric protocol があります(参考:Numeric 関連の階層)。Numeric は、数の性質のうち、たし算、ひき算、かけ算の3つの演算を定義する protocol です。 AdditiveArithmetic は Numeric よりも条件が弱い protocol で、たし算とひき算の2つの演算を定義する protocol です。 Swift 5 での AdditiveArithmetic 導入にともない、Numeric は AdditiveArithmetic を継承してかけ算を追加する形になりました。つまり、Numer
RxSwift は非同期イベントを受け取るための枠組みです(なお、RxSwift 再入門 という記事も書いていますので、よろしければどうぞ)。 非同期イベントと言いましたが、これは文字通り同期的でないイベントですので、現在のスレッドとは別のスレッドで発生するものです。では、RxSwift でスレッドはどのように扱われるのでしょうか? Rx でスレッドに当たる概念がスケジューラです。 (正確にはスレッドと完全に対応する関係ではないのですが、多くの場合は1つのスケジューラに1つのスレッドを対応させます。この記事ではそのあたりの詳細は省きます) 余談:Rx の三要素 Rx において重要な要素が3つあります。 Observable Operator Scheduler スケジューラは、Rx の三要素のひとつです。 スケジューラを使う Observable と Observer まず、イベント発生元
RxSwift について基本を説明するとき、Observable から話を始めることが多いかと思います。一方で、RxSwift の実際の活用方法としては、データバインディングが大事になってくることが多いようです。 ここでは、まず従来どおりの Observable の話を簡単にしたあと、データバインディングの話をするという形で入門を書いてみます。 RxSwift とは RxSwift は「非同期イベントを受け取るための枠組み」を提供してくれるライブラリです。 UI イベント受け取り Web API レスポンス受け取り データの変化の監視 RxSwift は ReactiveX ファミリーのひとつです。ReactiveX には、C#、Java など様々な言語のライブラリがあります。 コード例 (1) UIButton
Moq は、テストダブル(=単体テスト用の代役オブジェクト)を簡単に作るためのライブラリです。 テストダブル 単体テストにおける問題のひとつとして、以下のようなことがあります。 テスト対象の依存オブジェクトが・・・ ネットワーク通信が必要 データベースアクセスが必要 など、外部に依存する場合、そのままでは単体テストを作りにくいです。 これを解決するために、実際のオブジェクトの代わりを用意します。 テスト用の代役オブジェクトをテストダブルと呼びます。テストダブルはその役割に応じて、スタブ、モック、フェイク、などと呼称されます(それらの違いについては、本記事の主題と直接は関係がないので割愛します)。 典型的なテストダブルの実装 テストダブルはあくまで代役なので、本物と同じ振る舞いはしません。単体テストが動けば良いと割り切ります。 本物と同じ I/F を持つ。 通信などの振る舞いはしない。 特定
この記事では、Haskell Stack についての初歩的な説明をします。 (2022-11-20補足)現在は、GHC や Stack のインストールには GHCup を使うのが主流になっています。 はじめに いま Haskell の開発環境を導入するといえば Stack だろうと思います。 これから Haskell の勉強を始めようと思うなら、まずは Stack の使い方を覚えることになります。 Stack は便利なツールなのですが、個人的な印象としては、最初のとっつきが悪いと思っています。 僕が初めて Stack に接したときは、「これはいったい何をするツールなのだろう」とモヤモヤしました。 ひとつのツールでいろいろな役割をこなすので、かえって何のツールか分からないのです。 また、コマンドを実行しても、実際に何が起こっているのかがよく分からないのもモヤモヤする点でした。 そういう初歩的
git では通常、リポジトリと作業ディレクトリとが一組になっています。git clone をすると、作業ディレクトリの中に .git ディレクトリ(=リポジトリ)が作成されます。 そして、この作業ディレクトリの中でブランチを切り替えて作業するのが一般的かと思います。 さて、作業ディレクトリの中で何かの作業中に、別の割り込み作業が発生して、一時的にブランチを切り替えたくなったとしましょう。そんなときは、いったん現在のブランチに作業中の変更をコミットしておいてからブランチを切り替えたり、作業中の変更を git stash を使って保存してからブランチを切り替えたり、という操作をすることになります。 そういった操作が簡単に素早くできるのが git の特徴ではあります。しかしそれでも、そういった切り替えが多くなってくると、作業中の変更を失ってしまったり、現在のブランチを勘違いして作業してしまったり
SwiftGen とは SwiftGen は、iOS / macOS アプリ開発の補助ツールです。リソース(アプリ内の画像やテキストなど)の扱いが楽になるソースコードを自動生成してくれます。(なお、同様のツールに、(R.java 風の)R.swift や rdotm などがあります) 例えば、以下のようなことができます。 リソースの名前を文字列で書かなくてはならなかったところが、enum 定義値で書けるのがポイントです。 対応しているリソース 以下のリソースに対応しています。 画像 文字列(ローカライズ) Storyboard 色 フォント 使い方 swiftgen images DIR swiftgen strings FILE swiftgen storyboards DIR swiftgen colors FILE swiftgen fonts DIR それぞれのコマンドを実行すると
git clone したフォルダを単純に zip すると、.git フォルダが含まれてしまったり、普段は .gitignore などで無視しているファイルが含まれてしまったりします。 Git リポジトリの内容だけを取り出して zip ファイルにするには、git archive コマンドが便利です。 参考:GitHub だと、Git のタグをつけておくことで、git archive で生成したファイルと同様の zip ファイルが Release ページからダウンロードできます。 基本的な使い方 Git リポジトリの内容を zip ファイルにするには次のようにします。HEAD の部分は、タグ名、ブランチ名、コミットID、などが指定できます。
ちょっと Haskell をさわってみようと思った場合、定番としては、Haskell Platform をインストールして ghci を使う、といった方法があります。 ここではそれとは違う環境として、Haskell for Mac を紹介します(名前の通り、Mac OS X 向けです)。 Haskell for Mac とは 単体アプリで Haskell が動作する開発環境です。Mac App Store で販売されています。有償アプリではありますが、導入が手軽で便利だと思います。アプリをインストールするだけで準備完了です。 最大の特徴は Playgrounds 機能です。書いたコードがその場で自動的に実行される対話的環境です。これについて後述します。 また、簡易なプロジェクト管理機能もあります。 Haskell にはたくさんのライブラリ(パッケージ)があります。Haskell for M
let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() hogeButton.rx.tap .subscribe { [unowned self] _ in self.hoge() } .disposed(by: disposeBag) } 基本的に、UIViewController の viewDidLoad で UI アクションに対する subscribe を行うのが良いかと思います。 例えば UIButton には rx.tap が用意されています。これは、ボタンがタップされたことを通知してくれる Observable です。これを subscribe してタップ時の処理を記述します。 なお、RxSwift では DisposeBag というものが用意されています。.dispose
Semantic Versioning って何? Semantic Versioning とは、バージョン番号の付け方のルールのことです。 なぜ必要か? バージョン番号の大小を、プログラムで機械的に判定したい、というのが動機です。このために厳密な仕様が定義されています。 どこで使われているか? パッケージを管理するシステムで使われています。RubyGems や CocoaPods がそうです。 備考:一般のアプリの場合 Semantic Versioning は、主として、ライブラリ向けのバージョン番号を想定しています。 一般のアプリは必ずしも Semantic Versioning を守る必要はありません。しかし、バージョン番号の付け方に迷うようなら参考にしてもよいかと思います。 なお、バージョン判定をする何らかのフレームワークを使うなら、その動作仕様を知っておくべきです。例えば、OS
Homebrew のインストール先は、デフォルトでは /usr/local になっています。 インストール先を /opt/homebrew にするには、以下のようにします。 Homebrew 本体のインストール まず、あらかじめ /opt/homebrew ディレクトリを作成しておきます。
はじめに Git を使う場合、ブランチの作成とマージを頻繁に行うような運用が多いと思います。例えば、機能追加やバグ修正を行う場合には本流ブランチからトピックブランチを作成して、作業はトピックブランチにコミット、作業が終わったらトピックブランチを本流ブランチにマージ、といった運用です。 この場合、トピックブランチは細かい単位で作成して、作業が終わったらすぐマージする、というのが良いプラクティスであろうと思います。すぐマージすると、コンフリクトは起こらない場合が多いです。とはいえ、やはりコンフリクトが起こる場合はあります。 コンフリクトが起こる場合とは、feature/12345 ブランチを作成して作業して master ブランチにマージしようとしたところ、別の誰かによる変更が既に master ブランチに取り込まれており、しかもその変更箇所が feature/12345 ブランチでの変更箇所
例えば、START という行から STOP という行までを抽出したいとき。 awk を使う場合 シェルでこの手の作業をしようと思ったら、まず思いつくのが awk です。 実は簡単な記述法が用意されています。
以下のコマンドで、OLD_COMMIT と NEW_COMMIT の間に変更があったファイルだけ取り出せる。 OLD_COMMIT バージョンが old ディレクトリに、NEW_COMMIT バージョンが new ディレクトリに出力される。 OLD_COMMIT=$1 NEW_COMMIT=$2 for file in `git diff --name-only $OLD_COMMIT $NEW_COMMIT` ; do git archive --prefix=old/ $OLD_COMMIT $file | tar -xf - ; git archive --prefix=new/ $NEW_COMMIT $file | tar -xf - ; done git diff --name-only で違いがあるファイルの名前だけを取得する git archive でそのファイルを取り出す
cygwin コンソール版 vim は +clipboard バージョンではありません。 しかし、cygwin の機能を活用すれば間接的にクリップボードを扱うことができます。 vim からクリップボードへのコピー 以下のコマンドで、バッファ全体をクリップボードに送ることができます(/dev/clipboard は cygwin の機能のひとつです)。
Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
git でリポジトリを clone した場合、通常は元のリポジトリを丸ごと取得してきます。 しかし、最新版が取得できればそれでよい、過去の履歴情報はいらない、という場合もあるかと思います。そんなとき、次のようにすればリポジトリを丸ごと取得せず、最新版だけ取得できます。 これは、git のマニュアルでは shallow clone と呼ばれています。 オプション depth に渡す値は、取得する履歴の数です。上記では 1 を指定しているので、最新のみを取得します。depth 1 で shallow clone したリポジトリで git log を実行すると、ログが 1 つしかないのが分かります。 利点 変更履歴が多くて通常の clone では時間がかかるような git リポジトリの場合、shallow clone を使うことで通常の clone より速く最新版を取得できます。 とりあえず最近
先日、iBeacon を使ったアプリを AppStore で公開しましたので、簡単に紹介させていただきたいと思います。このアプリは複数名で開発しており、私は実装担当でした。 Ninja Tryst iBeacon の特徴 iBeacon は、ざっくり言えば、様々な機器が発するビーコン信号を iOS デバイスが検出する仕組みです。 iBeacon の特徴を簡単に述べておきます。詳しい情報は、昨日や一昨日の Advent Calendar の記事が参考になると思います。 BLE (Bluetooth Low Energy) を利用 一般の BLE 通信と異なり、ペアリングが不要 受信側デバイス BLE 搭載の iOS デバイス 発信側デバイス BLE 搭載の機器で、iBeacon 仕様のビーコン発信を実装したもの アプリがバックグラウンドのときでも、ビーコンを検出してユーザに通知できる おおま
develop ブランチに、リモートの更新を取り込む リモートの develop ブランチが更新された場合は、ローカルの develop ブランチもそれに追従したい。(特に、git flow feature finish したいときには必須) 事前に git fetch してあれば、以下の操作でよい。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
より簡単に使うためのオプション 次のオプションを使うと、より簡潔に書けて便利です。 -W : 変換元に含まれるワイルドカードは括弧がついているとみなす。また、変換先に含まれるワイルドカードは順に $1, $2, ... とみなす。 これを使うと、上に出てきた例は次のように書けます。
通常の git diff では、追加したファイルやリネームしたファイルなども差分として表示されますが、それが邪魔に思うときもあります。 以下のようにすれば、変更したファイルについてだけ差分を表示することができます。
git push の反対は git fetch です。git pull ではありません。 どういう意味? git push は、ローカルのリポジトリの内容をリモートのリポジトリに送り込むコマンドです。 git fetch は、リモートのリポジトリの内容をローカルのリポジトリに取り込むコマンドです。 ほら、対になるコマンドでしょう。 では、git pull は? git pull は、まず、リモートのリポジトリの内容をローカルのリポジトリに取り込み、次に、現在のローカルのブランチに対して、それに対応するリモートのブランチをマージするコマンドです。 マージ処理が入りますね。特に、マージが完了すると、作業ツリーの内容がマージ後の内容に変わります。 git push や git fetch は、リポジトリだけを操作し、作業ツリーは無関係です。これに対して、git pull は、リポジトリだけでなく
コマンドに別名をつける方法はよく知られていると思いますが、同じようにディレクトリに別名をつけることができます。 文法 次のようにすると、~エイリアス名 が ディレクトリパス の別名になります。
branch コマンドの contains オプションは、指定したコミットを含むブランチのみを表示する。 コミット指定を省略すると HEAD が指定されたとみなすので、以下でも上記コマンドと同じ意味になる。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
git を https 経由で使う場合、pull や push のたびに毎回パスワードを聞かれてしまいます。 これを改善するには git-credential を使うと良いです。 git-credential は git 1.7.9 以降で使用可能です。 なお、古いやり方としては .netrc を使う方法もありますが、パスワードを平文でファイルに保存するので、やらないほうがいいと思います。 使用可能な管理方式 git-credential では、以下のような方法でユーザ名とパスワードを管理できます。 git-credential-store : ファイルに保存します。ただし、パスワードが平文が保存されます。 git-credential-cache : 常駐プロセスに記憶させます。 git-credential-osxkeychain : Mac OS X のパスワード管理を使います。 G
次のページ
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く