この記事は、CAM Advent Calendar 15日目の記事です 前回は @matsuhei さんによる、 レガシーコードに対する解析ツール(重複コード編)でした。 概要 以前、Swiftのコードを誰かに見せてたときに以下のように指摘されました。 誰か「ここ、 / 2 になっとるけど * 0.5 のほうが速いで」 僕「あ、まぁ確かにそうですね(そんなに変わるかいな)」 確かに、基本的には割り算よりも掛け算のほうがパフォーマンスがいいです。直に頭で計算するとき、僕も掛け算のほうが計算しやすいです。計算理由にもよりますが、Swiftもその例から漏れないはずです。 ただ、iOSでは本番用のipaを作成するときにはリリースビルド(本番)が行われます。 速度ではなく、最適化の側面から見て、コードが一緒になってないかな?と思ったので、検証してみました。 検証環境 Apple Swift vers
こんにちは。リードアーキテクトのItoです。 前に予約していたNuAns NEOが届きました。かなりいい感じです。iPhoneと比べてしまうと、カメラ性能とアプリの少なさが気になりますが。 前回の記事では、Nodeベースのプロジェクト(Webサーバー)をSwiftに置き換えられるかという部分の話をしました。今回は前回からのアップデートや実際に運用してみたSwiftベースのサーバーサイドの話もしたいと思います。 Swift全体の動き、Swift本体(コンパイラ)のlatest build(masterブランチ)はSwift 3系になりました。 Swift(特にオープンソース版)の最新情報を追いたい場合は、以下のソースが参考になりました。 iOS Dev Weekly Swift Weekly Brief This week in Swift little bites of cocoa. Ch
In this post, we explore the nature of Swift’s new error type, looking at the possibilities and restrictions for testing error handling implementations. We end with an illustrative example, and some helpful resources. How to Implement the ErrorType Protocol If we jump to the definition of the ErrorType protocol in the Swift standard library, we see that it doesn’t contain many obvious requirements
iOSエンジニアの皆さん、ゴリゴリSwift書いていますか?サクサク書ける反面、コンパイルにやたら時間がかかってストレスフルですよね。今回は、激遅だったコンパイル時間が「ちょい遅」くらいまで改善したお話です。 あらすじ「ナウでヤングなiOSエンジニアはやっぱSwiftだよね!」ということで、半ば強引にSwiftを採用して直近のプロジェクトを進めていました。 補完機能が頻繁に落ちたり、ブレークポイントの位置がおかしかったり、変数の中身が見られなかったり、謎のエラーでビルドできなかったり、…などなど、まだまだバグはてんこ盛りですが、それらを見なかったことにできる程度にはいい感じです。型推論はそこそこ賢いし、何より簡潔に記述できます。ただの可変長配列のために、もうNSMutableArrayなんて長々と書かなくてもええんやで。 プロジェクトが進むにつれて見えてくる問題プロジェクトが進んでソースコ
SwiftDoc.org Auto-generated documentation for Swift. Command-click no more. News ⋅ @SwiftDocOrg ⋅ github.com/SwiftDocOrg Created by parsing and analyzing the autogenerated header for the Swift standard library. Built using SwiftDoc and Jekyll, hosted with Netlify. All content copyright © 2014 – 2020 Apple Inc. All rights reserved.
Stringの比較は正規化をかけた上で行われる Swiftの文字列比較は,Unicode正規化をかけた上で行われます。 たとえば,次の例をご覧ください。 let gaC = "\u{304C}" // 「が」の結合形 let gaD = "\u{304B}\u{3099}" // 「が」の分解形 // NSString としての文字数(UTF16での文字数)は異なる (gaC as NSString).length // => 1 (gaD as NSString).length // => 2 // String としての比較 gaC == gaD // => true (!!) これは,こちらのサイトによると, Depending on your requirements, this may or may not be what you want, but it is certainl
Swiftも1.0がリリースされ、SwiftでiOSアプリを申請できるようになりました。Swiftはとても学びやすい言語ですが、 Array (や Dictionary )の挙動については最初戸惑う人が多いのではないかと思います。そこで、Swiftを学習するときに Array についてハマりそうな点をまとめました。 多くの言語では配列やリストは 参照型(Reference Type) として扱われますが、 Swiftの Array は 値型(Value Type) です。配列やリストが参照型である言語(Objective-C、C#、Java、JavaScript、Python、Ruby、…)に慣れ親しんでいる人ほど、この違いに戸惑うのではないかと思います。 本稿では Arrayが値型であることによってハマりがちなポイントについてまとめます 。個別のメソッドの使い方などでハマりがちな点につい
米Appleは7月11日(現地時間)、6月のWWDCで発表した新プログラミング言語「Swift」の公式ブログを立ち上げた。このブログを通じて、同言語を構築したエンジニアが開発者向けに様々な情報を提供していくという。 Appleは開発者向けのフォーラムは運営しているが、開発者向け情報提供の窓口として公式ページ上にブログを開設したのはこれが初めてだ。 同社はiBooks Storeで、Swiftの電子版解説書を無料公開している。Swiftのチームは公式Twitterアカウントも持っており(Apple StoreのTwitterアカウントはあるが、Appleとしての公式アカウントはない)、Swift普及への意気込みがうかがわれる。 公式ブログへの最初の投稿で、開発環境「Xcode 6 beta」の無償提供も発表された。 従来Xcodeのプレリリース版を入手するには年額99ドル(日本では7800円
概要 思ったよりバズったので、いくつか加筆修正しました beta3でArrayの型指定の方法が変わったなーと思って眺めていたら、もっと根本的な変化がありました。 SwiftのArrayがヤバイなどで話題になってたやつです。 公式ドキュメント The Swift Programming Language 変更点 Array in Swift has been completely redesigned to have full value semantics like Dictionary and String have always had in Swift. This resolves various mutability problems – now a 'let' array is completely immutable, and a 'var' array is complet
Swift 3.0 Almost identical to Swift 2.0. OptionSetType was renamed to OptionSet and enums are written lower case by convention. struct MyOptions : OptionSet { let rawValue: Int static let firstOption = MyOptions(rawValue: 1 << 0) static let secondOption = MyOptions(rawValue: 1 << 1) static let thirdOption = MyOptions(rawValue: 1 << 2) } Instead of providing a none option, the Swift 3 recommendatio
数日間iOS8/Xcode6/Swiftな環境で色々試してみて、Swiftを使っていて思ったよりがっかりした点が多かったのでちょっとまとめてみようと思います。 動的な処理がSwiftだけでは一切できない [NSObject performSelector:]の類と、NSInvocationがSwiftからは一切呼び出せません。使おうとすると怒られます。objc/runtime.hは試していませんが、同様に直接Swift経由では呼び出せず間にObjective-Cをかます必要があるのではないかと思われます。 @optionalなprotocolが限定的にしか使用できない 具体的には@objc属性を付けないと使えません。しかしながらこのような後方互換性のためだけに存在する属性をいつまでもAppleがサポートするかは疑問が残るというのと、もう一つ以下の様な問題があります。 @objc属性のついた
Build apps using a powerful open language.
This content has moved; redirecting to the new location.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く