2015-12-01から1ヶ月間の記事一覧
12月に話題になっていたAdobe Creative SDK for iosを試してみました。 記事の内容に従ってインストールして動かしてみます。 Adobe Creative SDK for ios が本当にやばい - Qiita インストール CocoaPods対応していないので直接プロジェクトにフレームワー…
下記事を読んで思った事を書いてみます。 クラスはトップダウンよりボトムアップがいいと思う クラスの共通化は本当に必要になった時に行う 特に新規開発の初期段階では極力共通化はしないようにしています。 共通化をするのは開発も落ち着いてきて、利用す…
今日はこちらのライブラリを試してみました。 github.com インストール インストールはいつものようにCocoaPodsで行います。 CocoaPodsに上がっているものではうまく動かなかったので直接リポジトリを指定してインストールしました。 pod "SwiftCSV", git: '…
ActiveRecordでデータが存在するかを調べる時はpresent?よりのexists?の方が良いと聞いたので違いを調べてみました。 調べたところ「LIMIT 1の有無」と「カラムの情報を取得するかどうか」が違っていました。 2.2.0 :005 > Item.where(name: 'name').exists?…
こちらの記事を参考にMirrorオブジェクトを使ってみました。 Swift reflectionについて - Qiita プロパティー名一覧の取得 以下でプロパティー名一覧を取得できました。 しかしComputedPropertyは取得できないようです。 class MyClass { var prop1 = 0 var …
Swiftのclass_copyPropertyListメソッドについて調べてみました。 class_copyPropertyListを使うと下のようにプロパティ名を取得できます。 class MyClass: NSObject { var prop1 = "" var prop2 = "" } var count: UInt32 = 0 let properties = class_copyP…
下のコードで鳴らす事ができました。 バイブレーションは短いものが1回鳴るだけでした。 import AudioToolbox AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
Swiftで再帰的なブロックを定義すると表題のエラーが出ます。 var block = { () -> () in block() } 事前に宣言すればこの問題を回避できます。 var block: (() -> ())? block = { () -> () in block?() }
Swift言語について調べていたらEmptyCollectionという不思議な物を見つけたので動かしてみました。 初期化は下の通りです。 appendメソッドはないので要素の追加はできません。 let arr = EmptyCollection<Int>() arr.count EmptyCollectionの定義は下の通りです</int>…
機械学習について調べる中で出てきた 教師あり学習 と 教師なし学習 について調べてみました。 教師あり学習 と 教師なし学習 教師あり学習と教師なし学習は事前の学習の有無が違います。 教師あり学習では事前にデータとそれに対応する正解のペアを与える事…
機械学習ってなんなのかを改めて調べてみました 機械学習とは 機械学習 - Wikipedia まずはWikipediaで調べてみました。 機械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様…
こちらで紹介されていたので自分でも試してみました。 XcodeのUpdateの度に出て辛かったので非常に助かります。 XcodeをアップデートするとXib・Storyboardを開いただけで差分が出るのをなんとかする - Qiita コマンドは下の通りです。 find . -name "*.stor…
今日はGameplayKitのGKStateMachineというクラスを使ってみました。 こちらは簡単にStateパターンを実装できるクラスです。 Game用ライブラリであるGameplayKitに入ってはいるのですが、ゲーム以外のアプリを使う時にも使えそうです。 Stateパターンとは Sta…
設計について調べていると時々出てくるドメインモデル貧血症について調べてみました。 ドメインモデル貧血症の処方箋 - まめログ ドメインモデル貧血症 - Strategic Choice こちらの記事が非常に参考になりました。 簡単に言うと中身がスカスカなモデルが大…
ドメイン駆動設計について調べていく中でレイヤ化アーキテクチャと言う概念が出てきたので調べてみました。 レイヤ化アーキテクチャ 名前の通り、アプリケーションをレイヤ毎に分ける設計手法を指す言葉のようです。 MVCやMVP等もレイヤ化アーキテクチャの一…
CrashlyticsではDebug Information FormatをDWARF with dSYM Fileしないとエラーが検知されません。 今日はこのdSYMとは何かを調べてみました。 dSYMパッケージを見てみる 下パッケージがdSYMパッケージのようです。 /Users/[ユーザー名]/Library/Developer/…
ゲームのAIを作る時に出てくるミニマックス法について調べてみました。 ミニマックス法とは ミニマックス法 - Wikipedia ミニマックス法(minimax)は、想定される最大の損害が最小になるように決断を行う戦略のこと。 まずはWikipediaを読んでみます。 Wiki…
下記事を参考にSwiftとSwift Package Managerのインストールをします。 Swift Package Managerを使ってみる - しめ鯖日記 続けて下記事を見ながらSwiftraを動かしていきます。 SwiftでSinatraっぽくWebアプリケーションを書いてLinuxで動かす - Qiita まずは…
下のような現象を回避する方法です。 CorrectionのプロパティーをNoにすれば回避できます。 1文字目が大文字になるのを回避したい場合はCapitallizationをNoneにすると良いです。
Swift2.2を入れようとしたら以下のエラーが出ていました。 OSをEL Capitanにしたらインストールできるようになりました。
下のようなエラーが出た時の対処法です。 アプリのバージョンが不正と言うエラーになります。 CocoaPods内のInfo.plistのバージョンがおかしい場合も発生します。 CocoaPods内のバージョンを手動で適切な値に直したら動きました。 参考URL ios - CFBundleVer…
Swiftのオープンソース化に合わせ、Swift Package Manager というパッケージマネージャーが出ていたので試してみました。 github.com Swiftのインストール まずはMacにSwift2.2をインストールします。 下記事を見ながら実施しました。 SwiftがOSSになったの…
ドメインモデルとは ドメインモデル(英: Domain model)は、システムに関わる様々な実体とそれらの関係を説明するシステムの概念モデルである。 ドメインモデルは、システムの鍵となる概念と用語を文書化するために作成される。 ドメインモデルでは、システ…
出ている警告を一気に直す方法です。 「Editor」→「Resolve Auto Layout Issues」→「Update Frames」を選ぶと自動で調整してくれるようになります。
UIPasteboardを利用します。 let board = UIPasteboard.generalPasteboard() board.setValue("Text", forPasteboardType: "public.text") iOS上で貼り付けをする事ができました。 クリップボードの値の取得は下の通りです。 let board = UIPasteboard.genera…
PathfindingというiOS9からの機能を使ってみました。 Gameplaykitとは Gameplaykitとは、iOSの出しているゲームエンジンであるSpriteKit/SceneKitを強化してくれるライブラリです。 ルート検索・AI作成の手伝い・Stateパターンの簡単な実現などの機能があり…
こちらに書いてあったので読んでみました。 apple/swift-evolution · GitHub Swift2.2の変更点 Allow (most) keywords as argument labels 大体のキーワードをメソッドのラベルに使えるようになりました。 今まではinのような名前のラベルを使う場合は``で囲…
こちらの記事を参考に実行しました。 qiita.com まずはコードをインストール。 git clone git@github.com:apple/swift.git swift git clone git@github.com:apple/swift-clang.git clang git clone git@github.com:apple/swift-llvm.git llvm git clone git@…
swapというメソッドを使うと2つの変数の中身を入れ替える事ができます。 var arr1 = ["1"] var arr2 = ["2"] print(arr1, arr2) // ["1", "2"] swap(&arr1, &arr2) print(arr1, arr2) // ["2", "1"] タプルでも実現できますが、swapの方が短くて良さそうです…
UITableViewAutomaticDimensionという機能を使えばheightForRowAtIndexPathが不要なるらしいので試してみました。 使い方 StoryboardでCellの中にLabelをAutoLayout付きで入れます。 次にコードでtableViewのrowHeightにUITableViewAutomaticDimension、esti…