タグ

swiftに関するTokyoIncidentsのブックマーク (94)

  • モナドについてSwiftで説明してみた - Qiita

    モナドって何ですか? これをちゃんと説明できる人に会ったことがない。 ↑1に挑戦してみます。 まず、モナドには数学の圏論におけるモナドとプログラミングにおけるモナドがあります。圏論のモナドについては僕もよくわかっていません。圏論のモナドとプログラミングのモナドは同じものだというような説明がされていますが、当に等価なのか僕には判断できません(どうもプログラミングのモナドは圏論のモナドの条件を満たしていそうですが、逆は成り立たないんじゃないかと思っています)。 ここでは、 プログラミングにおけるモナド について説明します。コードはすべて Swift で書きます。モナドについて調べると、よく モナド則 について書いてあるんですが、肝心の記述が関数型言語で書かれていてわからん!となることが多いんじゃないかと思います。投稿では、 モナド則についても Swift の構文で記述します。 まず前半でモ

    モナドについてSwiftで説明してみた - Qiita
  • SwiftのOptional型を極める - Qiita

    投稿の個別の説明( Optional とは何か、 ?. と map, flatMap の関係、その背後にあるモナドという概念)は 2017 年現在でも通用するものですが、 Swift の Optional の使い方としては、僕の考えとのズレが大きくなってきました。 Swift の Optional をいつ・どのように使うべきかについてもまとめた ので、そちらも併せて御覧下さい。 Optional は Swift の仕様の中でもっとも素晴らしいものの一つだと、僕は考えています。 null参照 (多くの言語で nil や null と呼ばれるもの)を発明したトニー・ホーアは次のように述べています[^1]。 それは10億ドルにも相当する私の誤りだ。null参照を発明したのは1965年のことだった。(中略)これは後に数え切れない過ち、脆弱性、システムクラッシュを引き起こし、過去40年間で10億ド

    SwiftのOptional型を極める - Qiita
  • pplogが4歳になった - ppworks.jp

    ポエムを書くサービスであるpplog.netが4歳になった。 2013.9.26 18:36 に作りたいと思った 2013.9.26 19:05 に pplog.net ドメインを取得 2013.9.26 19:29 に rails4baseからリネームして作り始めた 2013.9.26 19:41 に Heroku へ push 2013.9.26 21:28 に初のポエムを書いた 2013.9.26 23:09 に一緒に作ったデザイナーさんがポエムを書いた 2013.9.27 02:25 に友達がポエムを書く Herokuへpushしてから初ポエムまでラグがあるのは、おそらく最初はポエムを書く機能がなかったと思われる。徹底的に削ぎ落とした機能開発だった。もはや何もなかったのだ。いいのかそれで。まあ1時間半後にポエム書けているし、いいや。 友達へ初めて教えたのが、27日だったので、誕生日

    pplogが4歳になった - ppworks.jp
  • 小さなコンパイラを作ろう

    About the content 2016年9月のtry! Swift NYCの講演です。映像はRealmによって撮影・録音され、主催者の許可を得て公開しています。 对绝大多数开发者来说,尽管我们每天都要与编译器打交道,然而实际上编译器对我们来说仍然像一个神秘的黑盒。在次 try! Swift 的讲演中,Samuel Giddins 从头搭建了一个全新的微型编译器,用来编译他自制的一门编程语言,从而借此去学习编译器的基工作机制。他还讲述了 Swift 是如何为复杂问题(例如语义解析、词法分析和代码生成)提供优雅的解决方案的。最后,我们将实现一门全新的编程语言,并完成对它的编译工作! 如果您对该主题感兴趣的话,可以在 Github 上的 segiddins/Sipquick 仓库找到完整代码。 概述(00:00) 我构建了一门名为「Sipquick」的编程语言,然后我用 Swift

    小さなコンパイラを作ろう
  • Swiftのコミッターになりました(なっていました) - いけだや技術ノート

    https://swift.org/contributing/#commit-access に記載があるように、SwiftのOSSプロジェクトでは、一定の基準を満たすことでコミット権を申請し、得ることができるようになっています。 遡って今年の1月に apple/swift-corelibs-foundation に集中的に取り組んだ結果、Swiftのコミット権を得ました(もう3ヶ月前じゃん!)。 とは言ってもC++でコンパイラーのコードが書けるわけではなく、標準ライブラリーやFoundationおよびそのOverlayなど、Swiftで書ける範囲での活動が主になりますが、Swiftの改善に少しでも貢献していきたいと思います。

    Swiftのコミッターになりました(なっていました) - いけだや技術ノート
  • コマンドラインからSwiftを実行したらImportError: No module named six - Qiita

    $ swift Traceback (most recent call last): File "<string>", line 1, in <module> File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py", line 98, in <module> import six ImportError: No module named six Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'run_one_line' is not defined ・ (省略)上記3行のエラーが繰り返し大量に表示 ・ Wel

    コマンドラインからSwiftを実行したらImportError: No module named six - Qiita
  • 実践Server Side Swift

    Swift実践入門刊行記念イベント Feb 24 2017

    実践Server Side Swift
  • Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita

    これは Swift Tweets の発表をまとめたものです(次回開催はこちら)。イベントのスポンサーとして Qiita に許可をいただいた上で投稿しています。 ありがとうございました!Q&Aは他の人の発表中でも構わないのでリプを飛ばして下さい。 続いては僕 @koher の発表で、タイトルは "Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい" です。 #swtws — koher (@koher) 2017年1月14日 第 1 部: Swift の 4 種類のエラーについて あまり知られてませんが、エラー処理について、 Swift 2.0 設計時に Core Team がまとめた "Error Handling Rationale and Proposal" というドキュメントがあります。このドキュメントは、僕が去年 try! Swift で発表した際にも参考文献にしまし

    Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita
  • 【Swift】R.swiftが優秀すぎるので紹介してみる | DevelopersIO

    こんぬづは、Steamのセールでゲームを買ったはいいが、家にネット回線がまだひかれておらずゲーム体のダウンロードすらできていない田中です。 今回は先日発見したR.swiftというライブラリが、導入コストに対する効果が高そうなので紹介します。 このライブラリ、Fabric.appにも導入されている模様です。 Building Fabric.app in Swift 概要 なにができるライブラリ? R.swiftの利点は以下になります。 コード補完でリソースファイルにアクセスすることができる リソースファイル取得時に型も補完してくれる 文字列指定による動的な指定をしなくてよいので静的に解析することができる(コンパイル時にエラーを出してくれる) なにがいいの? リソースファイルにアクセスする際によく取り上げられる問題として、文字列指定によって取得しなければいけない点が挙げられます。 これはTy

    【Swift】R.swiftが優秀すぎるので紹介してみる | DevelopersIO
  • プログラミングキャリアなしのメンバーばかりと自分のチームでObjectiveCからSwiftへ移行したことについての日記 - Time's up, let's do this!

    弊グループアドベントカレンダーの記事ですが日最終出社を迎えますshishiです。 www.adventar.org 前置き これは日記です 技術的な詳細の話はしない 特にためになりそうなことは書いてない 経緯 4月に入社。入社がそもそも紹介で、とある仕事のために僕が必要ということで誘われて入社したものの入社したときにその仕事はなくなってしまっていた。さて何をしたものかと思っていたらやったことないObjectiveCからやったことないSwiftへの移行プロジェクトをすることになった。なお僕個人は別の1人プロジェクトもやっている状態。 メンバー 私自身はRubyPHPPerl、あとは趣味で雑多に色々とやってきたプログラマー。開発リードをすることに。 実はもともとタイトルのような大変な感じのプロジェクトではなく、プロジェクトの話が出た頃にはObjectiveC版をメンテナンスしていた数人と

    プログラミングキャリアなしのメンバーばかりと自分のチームでObjectiveCからSwiftへ移行したことについての日記 - Time's up, let's do this!
  • 基礎からやりなおしメモ 【スレッド】 - Qiita

    動機 最近非同期処理を実装した際に苦労しました。 ・デバッグが大変 ・処理の順番を頭の中で理解してないとできない ・デッドロックぽいもの(たまにおきる値が入らないような現象)を起こしてしまった 気ままに読んだ記事を箇条書きでメモしていきます。 最近読んだ漫画はBaby Step。 どんな学びも細かく記録することがきっと成長につながる。 マルチスレッドとは パソコンの処理はフローチャートで表すように分岐やループがあっても処理は一連となっている。 これを処理速度を上げる目的で複数の処理を並列で実行するプログラムをマルチスレッドプログラムという。 スレッドを使う上での注意点 ・使いまくれば処理速度が上がるというわけではない(パフォーマンスの低下) ・デッドロックによるシステムの停止やデータの整合性の破壊がおこりうる ・デバッグが難しい 構造 タスク -プロセス -スレッド -スレッド -プロセス

    基礎からやりなおしメモ 【スレッド】 - Qiita
  • Swift GCD入門 - Qiita

    3年ぐらい前の被埃記事なのにだいぶご覧いただいていて…なんかもういたたまれなくなって記法など内容更新しました。ちなみに、何だかんだ普段使うのって DispatchQueue.main.async{ print("サブスレッドでUI処理") } だけだったなあっていう雑感。。(2018.12.25) 知識整理を兼ねてざっとまとめます。Operationとかとの兼ね合いについてはSwift 並列プログラミング基礎で。 1. はじめに GCDとは Grand Central Dispatch(直訳:総合送信?) マルチタスク実行基盤API もともとCベースで使うAPIだったが、今はSwiftライブラリDispatchが整備されている Operationはこれのラッパークラス 用法・効能 用意したディスパッチキューにタスクを放り込んで何やかんや。 スレッド管理しなくても非同期処理を実現できる。 「

    Swift GCD入門 - Qiita
  • Swift 並列プログラミング基礎 - Qiita

    Apple公式ドキュメントがとっつきにくいので、そのとっかかりとして。 1. はじめに 並列プログラミングとは 複数の実行処理をCPUに対して並列的に行わせるような実装のこと。ちなみに、並列の対義語は直列。 効能 実装コードがシンプルに。 処理を分担して実行速度が向上。 ビューとその他の処理を分けることで、遅延や引っ掛かりのないインタラクティブなUIに。 用語 CPU 中央演算処理装置。PCやスマホを構成する部品のうち、処理をどんどんさばいていく最も重要な部品。 メモリ 主記憶装置。PCやスマホを構成する部品のうち、処理で使うデータを一時的に保持するための部品。データを永続的に保持するHDDやフラッシュメモリなどの補助記憶装置とは別。 プロセス アプリケーションやプログラムごとに確保される実行インスタンス。専用に仮想メモリ空間とシステムリソースが割り当てられ、一つまたは複数のスレッドを含む

    Swift 並列プログラミング基礎 - Qiita
  • 杉本裕樹

    ゲーム用フレームワークであるGameplayKitを使ったアプリ制作を通して人工知能AI)について学んでいく連載。最終回は、3Dゲーム用のフレームワークSceneKitを使った簡単なアプリ制作を通して、3Dゲーム用のAIについて学ぶ。

    杉本裕樹
  • 10 Ways to Get Designers in Your Swift Codebase

    About the content This talk was delivered live in March 2017 at try! Swift Tokyo. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. Getting designers working closely with developers has many benefits. In this talk from try! Swift, Helen Holmes shows how to get designers into your code base by explaining the engineeri

    10 Ways to Get Designers in Your Swift Codebase
  • SwiftでiOS向け音楽プレーヤーを作るための基礎知識 - console.lealog();

    GitHub - leader22/SimpleMusicPlayer: SMP! つい先日こういうのを作ったので。 せっかく作ったので、覚えてるうちに忘れないようにメモっておこうかと。 iPhoneのローカルにiTunesから同期したものを再生するための内容で、それ以外のことは書いてないです。 流れ プレーヤーを用意する プレイリストとなるキューをセット 再生する曲や再生位置を設定 再生! です。 こういうまとまった内容が全然見つからなくて、最初は苦労しました。 ドキュメントにもちゃんと体系立てて書いておいてほしいですね・・。 プレーヤー MPMusicPlayerController - MediaPlayer | Apple Developer Documentation これも幾つか種類があります。 MPMusicPlayerController.applicationMusicP

    SwiftでiOS向け音楽プレーヤーを作るための基礎知識 - console.lealog();
  • GitHub - dekatotoro/FluxWithRxSwiftSample

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - dekatotoro/FluxWithRxSwiftSample
  • Himi Sato : Building Women Who Code in Tokyo

    try! Swift India 2017 - AI & Deep Learning using Core ML and Metal Framework

    Himi Sato : Building Women Who Code in Tokyo
  • なぜSwiftの文字列APIは難しいのか | POSTD

    (訳注:記事をご覧の環境によって文字列が正しく表示されない場合がございます。) 投稿が遅れたFriday Q&Aにようこそ。Swiftユーザの最大の不満の一つに、 String APIがあります。Swiftの文字列APIは難しく鈍いため、多くのユーザが他言語の文字列APIのようであればと感じているのではないでしょうか。今日はなぜSwiftの String APIがこのように設計されているのか(少なくとも私がなぜそう設計されていると思うのか)を説明します。そして、基的設計の観点から見て、なぜこれが最高の文字列APIなのかを説明します。 文字列とは何か 説明に入る前に、まず基的な概念を構築しましょう。文字列について、漠然とは理解しているものの、あまり深くは考えないものなのではないでしょうか。文字列をじっくり考えることで、どのようなことが起きているのか理解することができます。 概念としての文

    なぜSwiftの文字列APIは難しいのか | POSTD
  • 健康的なMVVM 書いてますか? ~MVVMアンチパターン集~

    Health Swift Meetup (http://finc-swift.connpass.com/event/29901/) の発表資料です。

    健康的なMVVM 書いてますか? ~MVVMアンチパターン集~