Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

WebViewでJavascriptとSwiftの双方向通信を行う方法です。 JavascriptからSwiftのメソッドを実行する 基本的な使い方 Swift UIWebViewではなく、WKWebViewを使用します。 WKUserContentControllerでJavaScriptで実行するコールバックを登録します。 実行されたコールバックはWKScriptMessageHandlerのuserContentControllerで受け取れます。 Javascript側で呼び出したコールバックはmessage.nameで取得できます。 class ViewController: UIViewController, WKScriptMessageHandler { override func viewDidLoad() { super.viewDidLoad() let webCon
Kotlin のマルチプラットフォーム対応、アツいですね。 KotlinConf 2017 Keynote レポート | TechBooster JetBrains/kotlinconf-app: KotlinConf Schedule Application 上の kotlinconf-app の対応プラットフォームは、 サーバーサイド(Kotlin for Server-side, Ktor) Webページ(Kotlin/JS, React) Android(Kotlin/JVM) iOS(Kotlin/Native) となっています、すご! Xamarin と比べてどうよ? 普段 Xamarin を使用して Android/iOS アプリを開発しているので、クロスプラットフォームアプリ開発技術が増えて嬉しい限り。 しかも Kotlin で書けるのはとてもよいですね。 正直、C# より
iOS 開発で必須とも言える API クライアントの設計手法を、初心者にもわかりやすく紹介します。 はじめに あなたは、どのように API クライアントを設計していますか。 まずはライブラリを選ぶでしょうか。 それとも、クラス図を書くのでしょうか。 なるほど、なるほど、ふーむ。 この記事では、もっと別のより良い設計方法を紹介します。 紹介する設計方法は、ほとんど設計知識のない状況から始めることができます。しかも、最終的にはあなたのプロジェクトにぴったりの設計を手に入れられる方法です。 対象読者 さて、この記事では、対象読者を次のように設定しています: どのような API 設計にしたらいいかわからない人 どのような API のライブラリを使うべきかわからない人 また、最終的には以下のレベルの目標を達成できることでしょう: あなたのプロジェクトの API 層設計者になれるレベル 目次 はじめに
追記 (2020-08-05) 投稿時には async/await が Swift 5 で導入されそうでしたが、 2020 年 8 月( Swift 5.2 )現在ではまだ async/await は導入されておらず、 Swift 6 での導入が有力になっています。 async/await は "Swift Concurrency Manifesto" の最初の Part に挙げられていますが、公式にアナウンスされた "On the road to Swift 6" の中で Concurrency が挙げられています。 先日、 async に関する PR が Swift リポジトリの master ブランチにマージされました。 2ヶ月ほど前、 Chris Lattner から swift-evolution に "async/await + actors" というタイトルで驚きのメールが流
これは Swift Tweets 2017 Summer での発表を編集したものです。 それでは、"純粋値型Swift"というタイトルで発表します。 #swtws pic.twitter.com/maVe3JYmM8 — koher (@koher) 2017年7月22日 Swift は値型を中心とした言語です。この発表では、仮に参照型を使わずに値型だけを使った場合、 Swift でどれだけのことができるかを探ります。 Swift が登場した当初、僕は Swift が値型を中心としていることに驚きました。参照型でないとできないことがあるし、比較的新しい言語は値型を参照型に見せかけてすべてが参照型であるかのように振る舞うことが多いように感じていたからです。 しかし、 Swift を使うにつれて、値型だけでできることは当初考えていたよりもずっと幅広いことがわかってきました。また、値型の特性を活
本エントリは Swift Tweets 2017 Summer でのツイート1をまとめ、加筆修正したものです。内容は 2017/07/22 時点でのものであることにご注意ください。 それでは、『実践Swiftコンパイラ』というタイトルで発表します。よろしくお願いします。 #swtws pic.twitter.com/Lx6pbZlLfO — Rintaro Ishizaki (@rintaro) July 22, 2017 Swift がオープンソース化されてしばらく経ちます。コンパイラにコントリビュートしたくても、どこから手をつけていいのやらと思ってませんか? コンパイラのコードを修正していくときに、具体的に何を手がかりにすれば良いのか、実際のバグを修正しながらご紹介します。 僕がコントリビュート始めたのは2016年の3月です。これが僕の初めてのPR。 日付に注目ください。完全に try
Swift のコンパイラの開発に手を出してみたい方向けに、コンパイラの全体構成がどうなっているのかを、大まかに説明します。コードリーディングの参考になればいいなと。 Swift コンパイラの構成 僕はプログラムを把握するときに、エントリポイント(最初に実行される箇所、 main 関数)が分からないとすごく不安になります。逆に言えば、エントリポイントさえ分かれば、そこから処理を追っていけば良いのでその後の理解が非常に楽になります。なので最初は swift コマンドのエントリポイントから。 注意: このエントリで、 GitHub にある実際のコードにリンクを張っていますが、行番号は時と共に変わってしまうので、ファイルまでのリンクになっています。関数名などで検索してください。 ドライバー (Driver) swift コマンドですが、実体は tools/driver です。 tools/driv
はじめに ニュース系アプリのユーザインタフェースの実装で、Objective-C での実現方法について記した。 ようやく Swift を学び始めたので、練習用に先の記事で紹介した PageMenuController を Swift3 で書き直し、PageMenuKit としてフレームワーク化してみた。 PageMenuKit の設計と実装 完成版は github に PageMenuKitSwift として公開中。 すぐに動かしてみたい人は、上記 URL をクリックしてダウンロードするか clone するかして、Xcode でビルドして、 iOS Simulator で実行してね。 メニュー画面の設計 PageMenuController と同じく、画面上部で横スクロールするメニューを実現し、スタイル指定でメニュー部分を切り替え可能な仕組みを採用する。また、メニュー部分は汎用的な親クラス
※ まだ正式リリースされていない情報なので変更の可能性があります🙇 Swift3まではstructやenumをデータとして保存や読み込みをする際に必要となるオブジェクトのシリアライズとデシリアライズのために一発NSCodingプロトコルに準拠したNSObjectを噛ませなければいけませんでした😭 struct Person { let name: String let age: Int } extension Person { class Helper: NSObject, NSCoding { let person: Person? init(person: Person) { self.person = person super.init() } required init?(coder aDecoder: NSCoder) { guard let name = aDecoder.
precedencegroup PipePrecedence { associativity: left higherThan: AssignmentPrecedence lowerThan: TernaryPrecedence } infix operator |>: PipePrecedence func |> <Input, Output> (lhs: Input, rhs: (Input) -> Output) -> Output { return rhs(lhs) } // 普通ver let storyboardName = storyboardName() let storyboard = UIStoryboard(name: storyboardName, bundle: nil) let viewController = storyboard.instantiateVie
この記事はVASILY DEVELOPERS BLOGにも同じ内容で投稿しています。よろしければ他の記事もご覧ください。 最近、業務で新しいiOSアプリを立て続けにいくつか開発する機会に恵まれました。 そんな中、いくつもアプリを使っていると、どのアプリでもよく使う処理があぶり出されてきます。 そういう処理はSwiftのExtensionとして別ファイルに書き出し、他のアプリへも切り出しやすいように個別のFrameworkにして管理しています。 今記事では、最近の開発でよく使ったExtension集をご紹介します。 Swift標準ライブラリ Date private let formatter: DateFormatter = { let formatter: DateFormatter = DateFormatter() formatter.timeZone = NSTimeZone.sy
先に結論 Swiftのstaticメソッド制約はちょっとしたシンプルな機能に見えるけど便利で深い Kotlin, TypeScript, Java で同じことをすると冗長で間接的なコードになってしまう TypeScriptのstaticメソッド注入は独特のテクニックで面白い 提示するJavaの実装は「T を new する」方法でもあるので参考にして Scala は間接的ではあるもののKotlinより良い形でかける SwiftはScalaの形をさらにより良くした形とみなすことができる C++はSwiftと同じ事ができるがわかりにくい書き方になってしまう 導入 Swiftはprotocolという機能で、Javaのinterfaceのように型がインスタンスメソッドをもつ事を強制する事ができます。そしてSwiftではそのメソッド制約として、インスタンスメソッドだけではなくスタティックメソッドをもつ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く