しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

2015-05-01から1ヶ月間の記事一覧

Swiftで学ぶデザインパターン3 (FactoryMethod パターン)

iOS

今回はFactoryMethodパターンについて書いていきます。 デザインパターンとは デザインパターンとはソフトウェア開発の設計方法の事です。 『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介され…

Swiftで学ぶデザインパターン2 (Decorator パターン)

iOS

今回はDecoratorパターンについて書いていきます。 デザインパターンとは デザインパターンとはソフトウェア開発の設計方法の事です。 『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されてい…

Playground + Swift だとprivateなメソッドにもアクセスできてしまった(未解決

iOS

Xcode6.3.2で試したのですが、privateメソッドにも普通にアクセスできてしまいました。 下の通り、test()にアクセス可能でした。 class ClassA { private init() {} private func test() { print(1) } } ClassA().test() // 1が出力される 別クラスからのア…

Swiftで学ぶデザインパターン1 (Singleton パターン)

iOS

今日からデザインパターンをSwiftで実装するとどうなるかという記事を書いていこうと思います。 最初はデザインパターンの中でも非常に有名なSingleton パターンについて書こうと思います。 デザインパターンとは デザインパターンとはソフトウェア開発の設…

segueについて調査 (Storyboard)

iOS

Storyboardを使う時に出てくるsegueについて調査しました。 segueとは 下図の矢印の事です。 私は画面遷移のオブジェクトと言う認識で覚えています。 segueの使い方 Action segueの使い方 一番簡単な方法はボタンを使った画面遷移です。 ボタンを右クリック…

SwiftのStringとNSStringとBridgeについて

iOS

SwiftのString型についてまとめてみました。 Objective-cのNSStringよりイケてる所 @を付けなくて済む let str = "" // @""と書く必要がなくなりました。 文字列連結が楽 +で連結できるようになりました、直感的で分かりやすい。 let str = "A" + "B" // Obj…

StoryboardとAutoLayout利用時にUIScrollViewのContentSizeが変わらなくてハマった話

iOS

題名の通りUIScrollViewのContentSizeが変わらなくてハマった話です。 最初は下のようにUIScrollViewとそれより大きいサイズのビューを用意。 AutoLayout環境ではUIScrollViewは中のビューの大きさに合わせてContentSizeが変わると書いてあったのでこれでCon…

AutoLayoutで発生する謎の16pxのマージンについて調べてみた (constrain to margin)

iOS

Autolayoutを使い始めて最初につまずいたのが、謎の16pxのマージンでした。 今回はそのマージン周りについて調査してみました。 下画像のように、Storyboardで親ビューと同じサイズになるようにMargin0のconstrainを作成します。 constrain to margin 上設定…

Swiftのプロパティーと初期化とConvenience initializer

iOS

init周りのConvenienceとかDesignatedとかのエラーが出たけどなんのことか分からなかったので調査。 基本的なinit 一番簡単なinitは下の通りです。 普通の関数と違ってfuncは不要です。 Objective-cのself = [super init];やif (self != nil) {}みたいな処理…

Swiftでswitchの戻り値を変数に入れるってできないか調査

iOS

やりたかったのはRubyで言う下のような事です。 num = 1 str = case num when 1 then 'one' when 2 then 'two' end 下のlet str: Stringみたいな宣言だけするのが嫌だった事がきっかけで調べ始めました。 宣言だけって代入漏れが起きそうで気持ち悪いので避…

SwiftのOptional型って実は列挙型だった

iOS

SwiftのOptional型について深く調べてみたのでメモ。 Optional型の概要 Optional型とは下のように?付きで宣言された変数の型の事を指します。 // この2つはOptional型 let a: Int? = 1 let b: String? = 1 そうなってくると「上の変数はInt型でありOptional型…

脳トレアプリ "24" をリリースしました

iOS

この度iPhoneアプリの24をリリースしました。 24 - 世界で人気の無料 脳トレ計算アプリhiroki sugimotoゲーム無料 ゲーム説明 内容としては4つのカードがランダム配られるので、それを四則演算を使って24にするというものです。 中国やアメリカでメジャーな…

Swiftのはてな記号とびっくりまーく記号についての調査

iOS

Swiftのはてな記号とびっくりまーく記号について調べてみました。 SwiftのOptional型について 上の記号はOptional型という物に深く関連しています。 Optional型とはnilを許可する型の事です。 分かりやすく言うとはてなが付いているものはOptional型、ついて…

AppleWatchとiPhoneでデータを共有する方法

iOS

今回はApp Groupという機能を使った共有方法を利用しました。 App Groupとはアプリ間でデータのやり取りができる機能で、ウィジェットアプリにデータを渡す時にも利用します。 App Groupの設定 最初にApp Groupを使う為の設定をします。 まずは下記の画面でA…

既存アプリをAppleWatch対応にしてみた (アプリが起動する所まで)

iOS

AppleWatchの開発をしてみたのでそのメモになります。 今回は既存のプロジェクトをAppleWatch対応しました。 Xcodeのバージョンは6.3.1になります。 とりあえずAppleWatchのシミュレータ動かす! まずはAppleWatchシミュレータが起動する所まで挑戦しました。…

UIGraphicsGetCurrentContext()がnilを返す事があった

iOS

iPhoneアプリを作ってる時にUIGraphicsGetCurrentContext()がnilを返してハマったのでメモ。 前回の記事にあるUIViewをUIImageに変換する際に起きた問題。 www.cl9.info 下のようなコードを書いたらnilが返ってきた。 let view = UIView() view.toImage() //…

UIViewにUIImageへの変換メソッドを追加する(Swift)

iOS

iOS10以上の場合は下のように記述します。 let image = UIGraphicsImageRenderer(size: view.bounds.size).image { context in view.layer.render(in: context.cgContext) } iOS9以下の場合 下のようにUIViewを拡張してUIImage生成メソッドを追加すればOK。 …