Swiftにおけるインポートとリンクの仕組みを探る iOSDC 2019
Swiftにおけるインポートとリンクの仕組みを探る iOSDC 2019
おはようございます。シニアアプリケーションエンジニアの id:cockscomb です。WWDC が目前に迫ったいま、今秋にリリースが予定されている Swift 3.0 について、Swift OSS コミュニティの中心である Swift Evolution から読み取っていきたいと思います。 [PR] 本記事は、筆者が株式会社はてなの協賛を得て主催した「関西モバイルアプリ研究会 #14」において、“Swift Otaku — Nerdy Swift-Evolution Watching” と題して発表したものをブログの記事として再構成したものである。 関西モバイルアプリ研究会は、毎月一度、平日夜に京都や大阪で開催される、モバイルアプリ関連の勉強会である。次回の「関西モバイルアプリ研究会 #15」は6月22日水曜日に開催予定だ。 目次 Focus Winding Down Complete
Help us understand the problem. What is going on with this article? 世間はクリスマスモードだと言うのに、辛気臭いタイトルですみません。「勝手に殺すな」とか「お前は何様だ」などとなんだか怒られそうです。「喪失感で胸がいっぱい」だとか「 Objective-C はまだまだ使える言語です!」だとか、そういう感傷もありませんし、主張もしません。「いい言語だと思うし好きだけど、結局 Mac OS X や iOS のアプリケーション開発以外に活用(しようとトライしたけど)できないまま Swift が発表されたなー」と思っていて、なぜ活用しにくかったのかを整理してみようと考えました。ですので、「 Objective-C 栄光の歴史」を語ることはありません。体験してないし。知らないし。 それから、ここでは言語としての Objective-
iOSアプリ開発者の皆さま、もう「Swift」でアプリを開発していますか? 登場した日から一年以上たち、今はバージョン2.0のベータ版まで出ているプログラミング言語Swift。初期はコンパイルの遅さや不具合の多さが目立ったのですが、最近はその辺りの問題が解消されて非常に使いやすくなってきています。 そろそろ、ぜひ移行をお勧めしたいのですが、既存のObjective-Cアプリを移行するのはなかなか大変な面もあると思います。チームで開発している場合は自分以外の開発者や関係者へ周知するコストも掛かりますし、Swiftへ移行する際のトラブルを思うと、いろいろな不安がつきまとうでしょう。 本稿では、そういった不安が少しでも解消されるように、アプリ開発のプログラミング言語をObjective-CからSwiftへ移行するメリットや手順、注意点など勘所をまとめて紹介します。 なお本稿は、SwiftやObj
オープンソース化ばんざーい!!とかそういうのは全然興味ないです、ごめんなさい。 XCode7で何気なくimport Foundationなどをすると、ついでに以下のライブラリがリンクされるそーです。 SwiftCore(Swiftのコア言語仕様) Darwin(UNIXベースのOSX/iOSの基盤部分。CoreFoundationもここに含まれる) Dispatch(Grand Central Dispatch) CoreGraphics(描画処理の基盤部分。今はOpenGLだと思いますがそのうち中身がMetalになるのでしょうね) ObjectiveC(Objective-Cランタイム関数) Security Swiftがオープンソース化される、と言っても本当にpure Swiftのコンパイラだけが提供されてもあまり意味がないので、「どこまでがどうオープンソースになるのか?」というのが興
qiita.com 素朴な疑問があったので投稿してみました。これはその補足みたいなもの。 CoreData CoreDataって凄く独特な世界観を持っていて扱いづらいと思った人が多いのではないでしょうか。 なんでこんなのがXCodeやInstrumentsのテンプレートに居座っているのか理解できない、関連張ると動作が重くなりすぎて使い物にならない、CoreData内部の良く分からないエラーに悩まされている、普通にSQL書きたいからFMDB使ってます、幻滅しましたRealmに移行します、そんな雰囲気だと思います。 CoreDataの原型は、NeXTのFoundationが用いられた最初の製品であるEnterprise Objects Frameworkです。 20年前にデータベース製品の学習コストの高さと、オブジェクト指向言語とのインピーダンスミスマッチの問題に取り組んだこの製品は、普及はし
「Objective-CがSwiftに置き換わる」っていうのがピンとこないのです。 それは、Swiftそのものがオープンソースになっても、あまり変わらないと思います。 以下はすごーくざっくりした知識で書いています。 Objective-Cの歴史 そもそもObjective-Cが何なのか、あまり知られていない気がします。 超ざっくり説明すると、AppleをやめたジョブズがApple OSの「次」として、当時としては革新的なオブジェクト指向OSだったNeXTSTEPを生み出しました。NeXTSTEPの存在は後の様々なOSに影響を与えました。OSXやiOS自体、NeXTSTEPの系譜です。 NeXTSTEPはオブジェクト指向のOS・開発環境・開発言語を統合し高い生産性を実現していました。その開発言語がObjective-Cでした。NSのプレフィクスの意味が、NeXTSTEPの略称というのは、比較
Facebook、静的コード解析ツール「Infer」を公開。Objective-C/Java/Cコードのバグを指摘してくれる Inferが対応するコードはAndroidのJavaとiOSのObjective-C、およびC。現時点ではAndroidとJavaではNullPointerExceptionおよびリソースのリーク。iOSとCコードではメモリーリークを発見してくれます。 実際にプログラムを実行することなくバグを発見しようとする静的コード解析は、コードをビルドしてテストプログラムなどを実行するよりも迅速にバグを発見できる方法として期待されています。 Inferも、Facebookがより早く高い品質のソフトウェアをデリバリする目的で開発されたものです。下記はInferを発表したブログ「Open-sourcing Facebook Infer: Identify bugs before y
Swiftでコーディングしていると,型について色々と考えることがあります. 型の捉え方は学術的にも色々あるとおもいますが,このスライドは自分の経験から自分なりの捉え方なので,間違っていることや補足などあれば教えて下さい. スライドの補足 例に出しているResult<T>ですが,Swiftコンパイラの仕様でこのままではコンパイルすることができません. このような型に包んで,Result<Box<T>>型にするか,@autoclosureで包むとコンパイルが可能になります. class Box<T> { let value: T init(_ value: T) { self.value = value } } 反省 最初に大きな声で挨拶したらなんか気持ちがアガってしまって,異様なテンションでプレゼンしてしまった. 完全に傾きすぎた… 反響を紹介します 次の発表「型」とかタイトルがカッコイイ。
Clang-Format Style Options¶ Clang-Format Style Options describes configurable formatting style options supported by LibFormat and ClangFormat. When using clang-format command line utility or clang::format::reformat(...) functions from code, one can either use one of the predefined styles (LLVM, Google, Chromium, Mozilla, WebKit, Microsoft) or create a custom style by configuring specific style opt
2014.08.18 スキル 業界で名の知れたプログラマーは、今年の上半期に何を学んでいたのか? 「同業者が役に立ったものは、自分にも役に立つはず」という仮説を基に、彼らの学びlogから、2014年上半期の流れを振り返り、今後の動向を予想してみよう! アルファブロガー 小飼 弾氏(@dankogai) 1969年生まれ。カリフォルニア大学バークレー校を経てオン・ザ・エッヂ(のちのライブドア)へ入社し、その後、取締役就任。96年にディーエイエヌを設立し、現職に。読書家としても知られ、ブログ「404 Blog Not Found」での書評は毎回、大きな話題を集めることでも有名。ニコニコ生放送にて、「プログラマー脳で今時のニュースを一刀両断する」放送を行っている。共著書、著書、多数 日本時間の2014年6月3日、WWDCの席上でAppleが新言語『Swift』を発表した。そしてその翌日の6月4日
iOSプログラミングの入門書。「第I部 C言語とObjective-C言語」「第II部 IDE」「第III部 Cocoa」の三部構成で解説します。第I部では、Objective-C言語およびオブジェクト指向プログラミングについて学びます。第II部では、Xcode開発環境の使い方、nibファイルやストーリーボード、iOSアプリケーションの開発ワークフローについて学びます。第III部では、Cocoaのイベント駆動モデルやデザインパターン、メモリ管理について学びます。本書では、これからiOSプログラミングをはじめる初心者を対象に、iPhoneやiPadのネイティブアプリケーション開発をわかりやすく丁寧に解説します。 翻訳者によるサポートページ。 訳者まえがき まえがき 第1部 C言語とObjective-C言語 1章 Objective-C習得のためのC言語入門 1.1 コンパイル、文、コメント
[新言語 Swift:image] Cocoa の優れた教師と考えられている Aaron Hillegass の意見とそれに対する反論が興味深い・・・ Big Nerd Ranch: “iOS Developers Need to Know Objective-C” by Aaron Hillegass: 11 June 2014 * * * iOS デベロッパにとって Objective-C の知識は必要だ アップルが Swift を発表したとき、少なからぬひとびとが「万歳! これで Objective-C を習わなくても iOS デベロッパになれる!」というのを聞いた。そんなひとに3つのことをいいたい。 When Apple announced Swift, I heard a few people say “Hurray! Now I can be an iOS de
Written by Mattt August 12th, 2013 This article has been translated into: 中文 What passes for randomness is merely a hidden chain of causality. In a mechanical universe of material interactions expressed through mathematical equations, it is unclear whether nature encodes an element of chance, or if it’s a uniquely human way to reconcile uncertainty. We can be sure of one thing, however: in the clo
[What Every C Programmer Should Know About Undefined Behavior #1/3 の翻訳です。] LLVMでコンパイルしたコードは、最適化を有効にしているとたまにSIGTRAPシグナルを生成するのはなぜなのか、と聞かれることがある。いろいろ調べたあと、(X86での話だが) Clangは "ud2" インストラクションを生成していたことがわかった。"ud2" は__builtin_trap()が生成するインストラクションと同じものだ。[訳注: #UD例外を発生させる命令。ソフトウェアが#UD例外をハンドルできているかテストするために使われる。つまり、ソースコードが未定義な振る舞いを使っていたから、LLVMはud2インストラクションを生成したのであって、LLVMのバグではない、ということ] こういう問題は幾つかあって、すべて、Cの未定義な振る
あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし
iOSでXMLをパースするには標準で、 NSXMLParser Libxml2 を使う方法があるようです。外部ライブラリもある様ですが、そのへんは未調査です。 それぞれ一長一短で、NSXMLParserはSAXタイプのパーサです。Libxml2はSAXとDOMタイプの両方を提供しています。 個人的にSAXはフラグを多用するので好きじゃないのとSAXタイプの解析方法は色々と参考に出来るサイトが多々存在したので、Libxml2/DOMでの解析を試してみました。 標準で使えると書きましたが、標準でライブラリは存在するが、標準でライブラリは引きこまれていません。個別に引き込む設定を行う必要があります。 Libxml2ライブラリの引き込み方は以下の方法が一番簡単でした。 プロジェクトを選択して「Build Phases」の設定画面を出します。「Link Binary With Libraries」を
Kazuho Okuiさんをゲストに迎えて、エイプリルフール、WWDC、Objective-C、Facebook UIなどについて話しました。 Show Notes Rebuild SP1 ★ Amazon アソシエイトリンク動作確認ツール [INFRA-7524] April Fools: migrate Apache Subversion project over to the git repo How To Find Pokemon On Google Maps WWDC - Apple Developer Apple's Worldwide Developers Conference starts on June 2nd Start Developing iOS Apps Today: Setup Transitioning to ARC Release Notes From NS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く