トップページ⇒tech
1002コメント290KB

Swift part7 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/03/21(月) 01:32:08.64ID:N7YCc9d1
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ
let s: プログラミング言語? = Swift[2]
http://anago.2ch.net/test/read.cgi/mac/1408755325/

プログラミング言語Swift 3
http://anago.2ch.net/test/read.cgi/mac/1408762479/

[SDK]iPhoneアプリ開発初心者質問箱45[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1447650023/

Xcode part13 [転載禁止]©2ch.net
http://anago.2ch.net/test/read.cgi/mac/1424907278/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part6
http://echo.2ch.net/test/read.cgi/tech/1454416808/
0952デフォルトの名無しさん2016/05/11(水) 18:18:50.02ID:rI6oMt4o
>>932
上やクライアントがswift指定してるという罠
0953デフォルトの名無しさん2016/05/11(水) 21:29:19.17ID:XprVS9+n
Swift3で破壊的変更が起きてデスマーチになっても
上やクライアントには関係ないからな
0954デフォルトの名無しさん2016/05/11(水) 21:59:25.44ID:P7ZP3HoH
javaやc#って破壊的変更あったっけ?
なかった気がする
0955デフォルトの名無しさん2016/05/11(水) 22:39:21.12ID:4sje7yOY
初期の頃のソースがそのままコンパイルできるってこと?
0956デフォルトの名無しさん2016/05/12(木) 01:02:58.87ID:6kP9VQqv
Swiftは終わりだろうね
0957デフォルトの名無しさん2016/05/12(木) 01:18:14.63ID:R4Q88AV6
すぐにSwift3が始まるからな
0958デフォルトの名無しさん2016/05/12(木) 01:24:46.97ID:6aRY0Xqb
swift5くらいまでは手を着けない方が良さそうだな
0959デフォルトの名無しさん2016/05/12(木) 01:28:53.32ID:Wf8oBi+n
Swift楽だわ
もうObj-Cには戻れんわ
0960デフォルトの名無しさん2016/05/12(木) 01:37:23.61ID:ByEEOU/C
UIKitをObjective-Cのかわりに使う分にはSwiftは楽だよ
Swiftを本格的に使おうとすると全然楽ではないし、破壊的変更で苦しむことになる
Swift2で書かれ、メンテナンスされていないゴミライブラリ郡を篩い分ける作業だけでもおぞましい
0961デフォルトの名無しさん2016/05/12(木) 01:54:26.12ID:Wf8oBi+n
ゴミライブラリなんか使うなよ
0962デフォルトの名無しさん2016/05/12(木) 02:42:02.98ID:4J49ezna
Androidの開発コードにSwiftを使用する
http://www.infoq.com/jp/news/2016/05/swift-for-android
0963デフォルトの名無しさん2016/05/12(木) 08:51:06.10ID:qxIPhfDG
betaから2.0までは半年単位で破壊変更だったろ
むしろ2.0から3.0までの変更が少なすぎて、飽きてる人多そう
0964デフォルトの名無しさん2016/05/12(木) 08:58:35.49ID:6aRY0Xqb
つまりswiftは趣味でしか使えないってことか
0965デフォルトの名無しさん2016/05/12(木) 09:16:51.06ID:ICr6Z31q
>>962
これはAndroid SDK作ってるチームに、あんな言語本気で使うの?って否定された
0966デフォルトの名無しさん2016/05/12(木) 09:19:07.59ID:qxIPhfDG
荒し目的以外でSwiftがガチで使えるって言ってるヤツはいないしな
それに気づいてないアンチは多いけど
0967デフォルトの名無しさん2016/05/12(木) 09:22:00.70ID:hzAx9gGp
海外のサイトみてみろよ
ガチで使ってる人いっぱいいるだろ
0968デフォルトの名無しさん2016/05/12(木) 09:30:44.81ID:qxIPhfDG
全体の何%だって話だよ
使う人はいるだろうけどメジャー言語で使うには辛い

>>965
サーバ向け言語のgoをiOSで動かしたGoMobileのブーメランささってんなw
0969デフォルトの名無しさん2016/05/12(木) 09:53:40.02ID:hzAx9gGp
メジャー言語ってなんだよ
使う言語の1つでいいだろ
0970デフォルトの名無しさん2016/05/12(木) 10:52:15.43ID:Wf8oBi+n
WWDCが楽しみだな
言語のプレゼンでワクワクさせられるのはAppleならではだな
0971デフォルトの名無しさん2016/05/12(木) 12:28:17.97ID:4J49ezna
swift コマンドって OSX にデフォで入ってる?
Xcode 導入しないと入らない?
0972デフォルトの名無しさん2016/05/12(木) 13:53:43.25ID:J9pMJf8f
RealmSwiftってライブラリ使ってるんだけど、
こいつ単体で容量50MB超えるってどういうことですか?
どうにもならないんですか?
0973デフォルトの名無しさん2016/05/12(木) 14:05:55.91ID:fvp8F2Pu
それはSwiftだからしょうがないんじゃないか
0974デフォルトの名無しさん2016/05/12(木) 14:06:21.98ID:zM8eV0Fx
32bitと64bitバイナリが内包されててApp StoreからDLする前に最適化されて半分にはなるんじゃね?とテキトーに答えてみる
iOSスレかRealmスレに有識者いそう
0975デフォルトの名無しさん2016/05/12(木) 14:24:02.32ID:u+gI67IU
>>972
ビルドした後のバイナリのサイズみてみればいいんじゃね?

>>973
Obj-C版のRealmは200Mあるんだが
0976デフォルトの名無しさん2016/05/12(木) 17:40:25.26ID:DKtdIGc+
>>975
200Mかあ。

そう言えば、Mac IIの内蔵HDDは40Mだったな。
200Mだと、、、、Quadraのころかなあ。
言語は、LightSpeec Cあたりだっけ。
0977デフォルトの名無しさん2016/05/12(木) 19:42:21.96ID:6wLBo9DQ
>>975
realmSwiftとrxSwiftを使ったアプリ作ってるけど
ipaファイルのサイズは11MBだったぞ。
ライブラリ側のサイズ見ても仕方なくね?
0978デフォルトの名無しさん2016/05/12(木) 20:47:25.72ID:79OW2QnO
なうい、かっこいい言語だから使っていてる。理由なんてそれだけで充分
0979デフォルトの名無しさん2016/05/12(木) 21:47:38.18ID:C03XQQkD
そう思って学習していくとObjective-Cより大幅に遅れた界隈の人たちが
そこに住んだままいまさら新たに考えたしんげんごってわかってきて
こんなのダメじゃね?となるという
0980デフォルトの名無しさん2016/05/12(木) 22:42:43.43ID:zM8eV0Fx
>>978
Swiftはチョベリグ ダヨネー(East End風

>>977
その半分がSwiftランタイムだと思うとちょっとアレだけどな
WebViewなアプリをSwiftで作った時はコレはやらかしたとマジで後悔したよ
本体よりランタイムの方がずっと大きいでやんの、、、

RealmだのRxだの使ってれば多少は後悔も少なかったと悔やむ
0981デフォルトの名無しさん2016/05/13(金) 00:02:32.70ID:OwCwO3Ka
>>948
someHeavyMethod(param, completion: {[weak self] in
 guard let weakSelf = self else {
  return
 }
 
 someHeavyMethod2(param2, completion: {[weak weakSelf] in
  guard let weakSelf2 = weakSelf else {
   return
  }

  someHeavyMethod3(param3, completion: {[weak weakSelf] in
   guard let weakSelf3 = weakSelf2 else {
    return
   }
   ...
  })
 })
})
こんな感じ?確かにまだこっちのほうがよいかも。weakSelfの数字をどんどんインクリメントしていかないといけないのはどうしようもないんですかね。

>>950
PromiseKit使えるように各種ライブラリを修正していくってことですか?コールバック受けるメソッドが全部自分が書いたやつだったらPromiseKit前提にするのも良いのかな

>>951
selfのnil判定がそもそも要らないだろうってこと?感覚的にそのようには思えていないんですけれども
0982デフォルトの名無しさん2016/05/13(金) 00:51:07.61ID:AZHuwgvK
感覚てそんなファジーなこといわれてもわからん
0983デフォルトの名無しさん2016/05/13(金) 02:19:07.18ID:hsr/lvyK
>>981
全部一緒でいい
あと strongSelf が普通

someHeavyMethod(param, completion: { [weak self] in
 guard let strongSelf = self else { return }
 
 someHeavyMethod2(param2, completion: { [weak self] in
  guard let strongSelf = self else { return }

  someHeavyMethod3(param3, completion: { [weak self] in
   guard let strongSelf = self else { return }
   ...
  })
 })
})

Promise 使うのにライブラリ修正なんて必要ない
非同期メソッドを Promise を返すメソッドでラップする
0984デフォルトの名無しさん2016/05/13(金) 07:18:01.26ID:eLoYCWPt
>>983
う、美しい言語仕様だー(目をぐるぐるさせながら)
0985デフォルトの名無しさん2016/05/13(金) 10:04:14.58ID:7v+s5Rqr
someHeavyMethod(param)
[weak self] in
 guard let strongSelf = self else { return }

})

質問者じゃないけど、コレ出来る?
0986デフォルトの名無しさん2016/05/13(金) 11:07:00.51ID:7fsj0BUa
>>985
横からだけど、自分はできてるけどできない理由は何?
0987デフォルトの名無しさん2016/05/13(金) 11:11:36.74ID:7v+s5Rqr
誰も直さないから[weak self]があるとダメって言う話かなぁと
0988デフォルトの名無しさん2016/05/13(金) 12:11:57.26ID:hsr/lvyK
何言ってるかわからん
0989デフォルトの名無しさん2016/05/13(金) 12:25:05.59ID:AYUc/5X4
xcodeのViewControllerってMVCモデルでいうVとCが一体になってますって意味じゃないよね?
ただのControllerだよね?
IBとViewControllerが密着してるから後はModelだけ作ればええねんって言ってる奴がいるんだけど、、
0990デフォルトの名無しさん2016/05/13(金) 13:08:16.05ID:CAtVBk8L
質問の意図がわからん
ViewControllerっつうくらいだから、Viewのコントローラーだろ
MVCでいうとVに近いけど、Cを独立させて明確にすることもできるししないこともできる
ViewControllerをDataSourceプロコトルに適合させてMの役割を担わせることもできる
要は作り方次第でどーにでもできる
0991デフォルトの名無しさん2016/05/13(金) 14:22:07.21ID:AYUc/5X4
そっかVだわ。
じゃあxibで作ったviewのオーナークラスはUIViewControllerを継承したクラスにすべきなのかな。
今までUIViewのサブクラスにしてたわ。
0992デフォルトの名無しさん2016/05/13(金) 14:34:06.52ID:OwCwO3Ka
>>983
なるほど。とてもすっきりしました。ありがとう。
PromiseKitも次回は導入検討します。

>>987
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html#//apple_ref/doc/uid/TP40014097-CH20-ID48
キャプチャリストの構文は把握してますか?
0993デフォルトの名無しさん2016/05/13(金) 14:47:16.02ID:4noKv6w/
いやControllerだろう。
UIViewは表示処理
UIViewControlerはライフサイクル管理とかイベントとUIview都のひも付け等を担当。
Modelとの連携もUIViewControllerでまとめる。
0994デフォルトの名無しさん2016/05/13(金) 15:35:59.76ID:AYUc/5X4
わかった!
viewとModelでは直接やり取りせず、
viewControllerを介してview群とModel群でやり取りすればいいんだね!
0995デフォルトの名無しさん2016/05/13(金) 15:37:27.61ID:XkDH6Kvi
ViewController is Controller
Not View
0996デフォルトの名無しさん2016/05/13(金) 21:59:24.00ID:4noKv6w/
MVCの本質がわかったところでそれで綺麗にかけるかというと微妙な気がする。
RxSwiftとかつかってMVVMみたいな設計してるアプリで
オープンソースでコードが直接参照できも乗ってないですかね?
0997デフォルトの名無しさん2016/05/13(金) 22:24:37.47ID:txnRg8L7
swiftなんかオナニー
新しい言語に乗り換えてたらキリがないだろ?
0998デフォルトの名無しさん2016/05/13(金) 22:56:02.22ID:iQGFQdt2
キリがなくて何か問題でも?
新しい言語触るの楽しくね?
0999デフォルトの名無しさん2016/05/13(金) 23:09:57.97ID:K3athqnx
楽しくない
1000デフォルトの名無しさん2016/05/13(金) 23:18:06.77ID:eLoYCWPt
新しい概念を持ち込んだ言語は面白いけど
Swiftは単にいいとこどりしようとして失敗してるだけだからな
言語ヲタには面白くない
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 53日 21時間 45分 58秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。