Swift

IT/Computer

Swiftlintのチェック項目がコロコロ変わる

SwiflintをCocoaPods経由でインストールすると、多くの場合定期的に更新をかけるわけだが、デフォルトのチェック項目がコロコロ変わるせいか、今まで大丈夫だったものが警告やエラーになるというのが往往にしてある。
IT/Computer

SwiftのInt型について

Swiftプログラミング言語であるため、当然ながら変数や関数といったものが使われている。その中で当たり前ではあるが、変数の型がある。とはいえ、C言語やC++とは違う場合があるので、そこは気をつけるべきである。
IT/Computer

Swiftではswitch文のbreakは基本的に不要

C言語やその系統の言語では、多くの場合、switch文を使う場合、各caseの最後には意図的にフォールスルーを行う場合を除けばbreak文を付与しなければならなかった。というのは、C言語においては、各caseはラベルとしての意味合いしかなか...
IT/Computer

SwiftのfatalErrorとは

Swiftは、その多くはObjective-CおよびCocoa Frameworkから取られているが、Swift特有の機能も少なくない。Objective-Cでは基本的にNSObjectのサブクラスとして扱われる各クラスの一方で、Swift...
IT/Computer

Objective-CとSwiftを使ってみよう – 必要な環境

Objective-CとSwiftを使ってみよう – はじめにでは、Objective-CとSwiftについて、それぞれの言語についてと、最初の簡単なコードについて説明した。ここでは。実際にObjective-CとSwiftを学習するにあた...
iOS

Carthageのビルド時間のトータルは使い方次第

Carthageを使っていると、ビルド時間のトータルが節約されると言われているが、その効果は使い方によって変わってくる。パッケージの更新頻度が低ければ効果が大きいが、更新頻度が高いと効果が薄いどころか、逆効果の場合もある。
iOS

Carthageで必ずソースコードからインストールする場合

Carthageでは、簡単にパッケージをインストールすることができる。多くの場合はソースコードを取得、それをビルドして準備するが、一部のバイナリーが提供されているものについては、それを優先的に使う。この場合、問題を起こすことがあるため、その...
IT/Computer

Objective-CとSwiftを使ってみよう – はじめに

近年、iOSのアプリ開発での主流はこれまでのObjective-CからSwiftに変わりつつある。しかしながら、ライブラリーの開発を中心にコンパイラーの問題、およびC++との連携などでSwiftではなかなか解決できない問題も残っており、その...
IT/Computer

Xcode 8.1へ移行する際の注意点

iOS 10およびmacOS Sierraの登場に伴って提供されたXcode 8.0から、早くもiOS 10.1及びmacOS Sierra 10.12.1向けの環境が整ったXcode 8.1がリリースされたが、Xcode 8.0から8.1...
IT/Computer

Swiftにおける整数型と浮動小数点数型

Swiftもプログラミング言語であるため、当然のことながら変数の型がある。C言語であれば、C/C++における整数型には気をつけよでも扱ったように、型によって、扱える数に差があったように、Swiftでも変数型によって扱えるビット数に差がある。
IT/Computer

コマンドラインなどのツール系にはSwiftは合わないのかも

Xcode 8.0環境でSwiftLintをインストールするには注意が必要でも部分的に取り上げたが、コマンドライン系のツール、特にパッケージ管理ツールなどでビルドするのを前提としたツールについては、Swiftはあまり合わないのかもしれないと...
IT/Computer

POH8のSwift版回答例も作成中

今更ながら、私が前にC++で行なっていた『paizaオンラインハッカソンVol.8 恋するハッカソン〜君色に染まるアイドル〜』(以下、POH8)の回答例について、Swift2版も順次作成を行なっている。ひとまずは、髪型系のコードは投稿済みで...
IT/Computer

Swift 3のアクセス修飾子

Xcode 8.0が登場し、Swiftを使っているプロジェクトではSwift 3.0への移行も行われているものも少なくないが、Swift 3では新たに追加されたアクセス修飾子が2つある。それが「open」と「fileprivate」である。...
iOS

Xcode 8.0でPodをlintするには

CocoaPodsでlintを通すとき、CocoaPods 1.0.xでは通常、iPhone Simulator 4sを使ってlintが行われるようである。従って、そのままではpod spec lintを走らせても異常終了してしまう。従って...
IT/Computer

Objective-CでSwift用のStatic Propertyを定義するには?

SwiftではSingletonインスタンスをstaticプロパティーとして定義することができるが、Objective-Cではそれを行うことはできない。しかしながら、Swift、特にSwift 3との整合性を図るために、Swiftから呼び出...
IT/Computer

SwiftとObjective-Cは両方覚えておくべき

もしiOS/macOSのアプリ開発でどの言語を使えばいいのか悩んでいるのであれば、SwiftもObjective-Cも両方とも覚えておいたほうが良いだろう。というのも、現時点ではSwiftもObjective-Cもどちらも万能と言えるもので...
iOS

PFImageStoreの開発状況

現在、GitHubでPFImageStoreの開発を行っており、一応、Carthageで使えるようにはなっている。最低限テスト目的で使えるようにはなっているが、現時点ではまだ、使い方については説明していなかったので、ここで一旦説明を行なって...
IT/Computer

アプリはSwift、ライブラリーとフレームワークはObjective-C

今回のXcode 8.0移行時のSwiftマイグレーション問題から、他のライブラリーやフレームワークなどから使われることが前提となるライブラリー/フレームワークはObjective-Cで書いた方が良いという考えに至った。
IT/Computer

Swift 2.xと3.xは共存できない

これは当たり前といえば当たり前なのだが、Swift 2.xと3.xは共存させることはできない。これはSwiftで書かれたフレームワークを使っている場合に問題となるのだが、Swift 3.xを使ったプロジェクトはSwift 2.xで作られたフ...
iOS

CocoaPodsやCarthageを使っている場合はXcode 8.0へのアップデートは待った方がいい

もしiOSおよmacOSのアプリプロジェクトでCocoaPodsやCarthageを使っているのであれば、一旦Xcode 8.0へのアップデートは待った方が良い。そうしないと、かなり大変なことになるからである。