投稿

Swiftブログの要点まとめ 2015

イメージ
appleの公式Swiftブログ(英文) の各記事の要点を日本語でまとめます。 英語のトレーニングを兼ねて... Swift is Open Source 2015年12月3日 Swiftはオープンソースになりました。 関連項目は Swift.org Swiftに関わる人のためのサイト github.com/apple ソースコードの置き場 Swiftパッケージマネージャーというコードを共有したりビルドするためのツール Swiftネイティブコアライブラリというスタンダードライブラリの上のレベルのもの LinuxだけでなくAppleのプラットフォームにも対応 Literals in Playgrounds 2015年10月7日 Playgroundでファイル、色、画像の扱いが可能になりました。 Swift 2 Apps in the App Store 2015年9月21日 Swift 2で作成したアプリが提出可能になりました。 Xcode 7はSwift 2を含みます。Swift 1.2から変更するにはEdit > Convert > To Latest Swift Syntaxを使用して下さい。 OS X El CapitanでXcodeを使うならXcode7を要求します。Xcode 6を使い続けるならOS X Yosemiteのままにして下さい。Xcode 7とYosemiteの組み合わせはOK。 Swift-er SDK 2015年8月12日 Xcode 6.3でObjective-Cに新しい機能のnullability annotationsが付きました。SwiftのOptionalに相当します。 Strings in Swift 2 2015年7月23日 Swift 2ではStringの仕様が変わります。 今までStringはCharacterのコレクションとして扱ってきましたがSwift 2ではそうではありません。Swift 2ではStringはcharactersというプロパティを持ち、そのcharactersプロパティがコレクション(文字の集まり)の性質を請け負います。 変更の理由は、StringはArrayやSet,Dictionaryといったコレクションとは極め...

Xcode7の時点でCertificate(証明書)とProvisioning Profileの作成は(ほぼ?)全自動に

イメージ
Certificate(証明書)とProvisioning Profileを全部削除した状態で、Xcode7でデバッグ(手元デバイスでの動作チェック)とストアへの申請を行い、どの程度自動作成機能が使える状態になっているか確認する。頻繁にチェックしているわけではないので実はXcode6のときにすでに出来ていたと言われる可能性もあるが、とりあえずやってみる。 1、developer.apple.comのCertificates,Identifiers & ProfilesページでCertificateとProvisioning Profileを全部削除する。App IDとDeviceは使用するものが設定してある。App IDはそれぞれのアプリ個別のもののみがある。 2、Xcode7の環境設定の中のAccountsのView Details...ボタンをクリック。出てきた一覧表に上下2つのエリアがありますが、上のSigning IdentitiesはCertificateに対応しているようです。Provisioning Profileがあれば(ローカル環境に残ったもの?)削除する。Signing IdentitiesのiOS DevelopmentとiOS DistributionにはCreateボタンがあるが作成はせずにスルー。 3、Xcode7でプロジェクトを開く。Bundle Identifierは設定してある。当然、No provisioning profiles foundの黄色警告が出る(ターゲット設定のGeneralタブのIdentitiy)。修正するためのFix Issueボタンも表示される。この時点でシミュレータでは実行可能。 実デバイスで実行しようとするとNo Provisioning profiles foundの赤色アラームが発生。実デバイスでの実行は不可。 4、ここでお待ちかねのターゲット設定のGeneralタブのIdentitiyのFix Issueボタンを押す(裏で何をやっているかわからないから好きではないという意見もあるかも)。すると iOS DevelopmentのCertificateが作成 され(Createボタンが消える)、App IDにも Xcode iOS Wildcard App IDという...

iOS9対応でやったこと

[NSLocale preferredLanguages] [NSLocale preferredLanguages]で返ってくる言語設定が iOS8まで ja iOS9から ja-US のようになったので対応。 isEqualToString:@"ja" から hasPrefix:@"ja" へ変更すればOKと思いましたが ジャマイカ... が脳裏をよぎり isEqualToString:@"ja"とhasPrefix:@"ja-"のORにしておきました。 NSManagedObjectContext [[NSManagedObjectContext alloc] init]が9.0でdeprecatedになったので [[NSManagedObjectContext alloc] initWithConcurrencyType:] に変更しようと思ったがConcurrencyTypeの設定が難しすぎて一旦保留。 Requires full screen iPadアプリで「全方向対応でない場合はRequires full screenをONにするように」というワーニングが出たのでONにする(そのアプリは縦のみ対応)。 このパラメータはSlide OverやSplit Viewで画面の一部の表示をされたくない時にもONにするものらしい。 (追記 : 以下のバグはXcode7.1.1では修正されていました) ちなみにiOS9.0 Xcode7.0の段階でSlide OverやSplit Viewを有効にするとなぞのバグ(?)があって、 フルスクリーン状態で(Slide OverやSplit View状態ではない)デバイスを回転させて、UIDeviceOrientationDidChangeNotificationを受けた時に self.view.bounds.size.width self.view.bounds.size.height が変更前の状態で取得されてしまって使えなくなるという現象があった。その値を元に全体の要素を配置しているので、縦にすると横の配置になり、横にすると縦の配置になるという現象。 [[UIApplicati...

SwiftでのdrawRect()

UIViewのdrawRec()メソッド内で線を描いたり円を描いたりするやり方について。 CGContextなんとかという関数を用いる方法が広く紹介されているが、実はUIBezierPathというクラスもある。これはCGContextなんとかを機能的にラッパーしたクラス。Appleの資料によるとこちらの方がおすすめらしいのでこれを中心に紹介していく。Bezierというとややこしい数式を用いた描画というイメージがあって名前で少し敬遠してしまうが、線を引いたり丸を描いたりといった単純な描画でもこのクラスをメインにするといい。UIPathのようなシンプルな名前にしておけばもっと人気(?)が出たかもしれない。 描くときの大まかな流れは 1 線の太さや使用する色を指定 2 パス(線要素)を必要なだけ足していく。 3 描画指令を出す となる。 UIBezierPathを使った描画 //色の設定 UIColor.redColor().setFill() UIColor.blueColor().setStroke() UIColorに色設定メソッドがあります。UIBezierPathというのはPathに関するものなので色は専門外なんでしょう。 でここからUIBezierPathのメソッドです。 //空インスタンス作成 let line = UIBezierPath() //線の太さ line.lineWidth = 2 //開始点 line.moveToPoint(CGPointMake(10, 10)) //追加点 line.addLineToPoint(CGPointMake(20,20)) //パスを描く line.stroke() //パスを閉じる line.closePath() //円や楕円 let daen = UIBezierPath(ovalInRect: CGRectMake(100, 100, 100, 100)) //四角 let shikaku = UIBezierPath(rect: CGRectMake(100, 100, 100, 100)) //中を塗る daen.fill() shikaku.fill() //角が丸い四角 let kadomaruSHi...

Swift資料の英単語 - Using Swift with Cocoa and Objective-C

実際に資料を読みながらわからなかった単語を記載していく。 英語は得意というわけではないので若干の誤りがあるかもしれない。 本文に合わせて多少変更した意味になっているところもある。 Using Swift with Cocoa and Objective-Cの範囲です。 Getting Started Interoperability 相互に操作出来ること? interface 連結する take advantage of を利用する Migration 移行 identical 一致する delineation 記述? reside 居住する vend 販売する、(この文脈では)供給する leverage 投資する、(この文脈では)導入する Interoperability Interacting with Objective-C APIs come over やってくる get sliced off 外される respective それぞれの consistency 一貫性 audit 検査する Mix and Match incorporate 取り入れる coexist 同時に同じ場所に存在する co + exist straightforward わかりやすい depict 表現する メモ Bridging-Headerを使う。SwiftからアクセスしたいObjective-CのヘッダーファイルをBridging-Headerに書く。 Xcode-generated headerを使う。Objective-CからアクセスするSwiftのファイルが書かれる。 Migration revisit 再検討する hassle やっかいごと

詳細!Swift iPhoneアプリ開発 入門ノート

表紙はiOSプログラミング本にはめずらしいオレンジ色。(初版) 6章以降は、アプリを作ったことがあるとちょうどいい内容です。サンプルはなかなかコアなところを選んである。 今までiOSアプリを作ったことがない人が、これで一からやろうとするときついと思う。今までにいくつかアプリを作った人でないと理解できないような表現がけっこうある。

XcodeのAssistant EditorのManualを、選べない状態から正常な状態にする

イメージ
Xcodeを使っていて困ることの一つにAssistant EditorのManualが正常に機能しないということがあります。どういうことかというと 通常は このようにManualの下にProjectがあり、その下にある任意のファイルを選べるようになっています。 しかし、ときどき このようになり、現在選ばれているものから変更出来ない状態になります。 ここから正常な状態に復帰させる(ことが出来るかもしれない)手順です。 Xcode6.2 OSX10.9 で確認しております。他の環境では出来ない可能性もあります。 1,まずManual以外のものを選択し表示を切り替えます。 2,一旦Assistant Editorを閉じます。 3,再びAssistant Editorを表示させます。 4,Manualが正常に戻る(かも)。 自分の環境では100%修正可能でしたが、どんな環境でも必ず正常に復帰できるかどうかはわかりません。参考になれば。 ちなみに、そもそも何故不安定な状態になるかですが、いろいろやってみたところ"Manual"自体をクリックしたときの制御が不安定のようです。Manualにして何かのファイルを表示したいときはマウスで目的のファイルまで辿り着いてからクリックするとこの不安定なポイントを避ける事が出来ます。