非同期メソッドを同期コンテキストで呼ぶ
非同期メソッドを同期コンテキストで呼ぶ
依存性注入の2つの手法を比較
ContentViewにCounterクラスのインスタンスを注入する際にインスタンスを1つだけ生成する場合と複数生成する際の振る舞いの違いを比較する
Shape vs ShapeStyle at SwiftUI
どちらもTextの背景を設定する際に用いるのだが前者は図形、後者は図形の塗りを指定する。次のコードではTextの背景が同じ3つのButtonを表示している。背景は灰色青で塗った角丸四角を3通りのコードで表現している。
Observation Frameworkでアプリ環境変数をViewで監視する2つの方法
Appleのデバイス上で動くアプリで使われる値監視メカニズムは、かつてはCombineフレームワークと共に導入されたObservableObjectプロトコルを使ったものだった。今はObservationフレームワークが使われる。これはSwiftUIをインポートすれば同時に利用できる。
Package.swiftの書き方
Package.swiftとはAppleの開発環境でLibrary, App作成のためのProjectファイルっぽいものである。
ScrollView-SingleView画面遷移
NavigationLinkを使ったListViewとDetailedView間の画面遷移と似た画面遷移を実現する方法を見つけた。
SQLite.swift の使い方
SwiftからSQLite3を扱うためのFrameworkは複数ある。Swift Package Indexで検索するとダントツに星が多いのがSQLite.swiftだ。 stephencelis/SQLite.swift: A type-safe, Swift-language layer over SQLite3. RepoのREADMEを見るとExpressionオブジェクト, Tableオブジェクトなど見慣れないオブジェクトを生成しなければならず取っ付き悪そうだが、実は生のSQLを書いてDBを操作できる。
pdf, 7z, zip, xls, xlsxファイルからtext抽出
Rubyで日本取引所グループ(JPX)から入手できる規模別株価指数、構成銘柄リストを読んでみる。やってみると、pdfは27pagesもあって全ページ検証したわけでは無いが一見すると上手く読むことができた。ところどころ謎の改行が含まれている。popplerコマンド(brewでinstall可能)だと壊れた表のレイアウトが維持されている。構成銘柄一覧は、呼値がTOPIX500銘柄が特別細かく設定されて取引されるので、株式売買シミュレーション(バックテスト)を厳密にやりたい時に必要となる。
homebrewで意図せずRubyのバージョンが変わってしまって時にやったこと
Rubyでpdfファイルの中の表からCSVファイルを作ろうとした。結局は失敗するのだが、brew install popplerを実行するとbrew updateが走り出してvim, ruby,…がupdateされてしまった。するとvim-lspが動かなくなってしまった。後から解るのだが、solargraphがRubyのVersion Upにともない動かなくなってしまったのだ。そこでvim-lspが再度動くようになるまでの格闘記録を残す。
Pointerを受け取るC言語関数(ta-lib)をRubyから呼出す
株価分析ソフトを作る際に利用されるTA-LibをRubyから活用する方法を説明する。この記事では移動平均を算出するTA_MA関数を例にまずはC言語から呼出すコードを掲載し、更にRubyからも呼出すコードも示す。