Swift part13
Swiftについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1540818496/
スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured クセが強いですが同じようなことはできますよ、ただし理解するまで面倒なのとコードが冗長になります
さっき調べてみましたがAndroidのほうが格段に楽に見えますね 高度IT人材、富士通は最大年収3500万円へ
「富士通年収3500万!」日本のIT企業の年収も、高額化してきました
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
副業・兼務の解禁から4年、ロート製薬流で進めるキャリア支援
ロート製薬が副業をいち早く導入した「超人間的」な理由
ロート製薬会長が「副業を受け入れない会社は発展しない」と断言する理由 PCキーボードからipadに入力したくてkeywiってアプリいれてみましたが上下のキーがきかないです
これってimeの制約でしょうか、他のキーボードも上下ないですしね? あkeystogo持ってるんだった
上下ありますね、keywiが対応していないだけか ここで聞くのが適切かどうか分からないんですが
SwiftでFirebaseを使ったチャットを作ってます
Cloud Firestoreでroomコレクションがあり
その中に1投稿ごとのドキュメントが格納してある感じです
各投稿ドキュメントの中には投稿時間が格納してあり
1週間以上前の投稿は自動で削除していく仕様です
が、この投稿時間から判定して自動で削除って
そもそもFirebaseで実現可能でしょうか?
iPhoneアプリとは別に監視クライアントを作って
24時間365日監視クローリングさせておいて
期間が過ぎてる投稿を消すみたいな形なら
実現出来そうな気がしますが常に起動させておく
サーバーが必要になってくるので
なんか実装としては厳しいような気がします
iPhoneアプリ自体にそういう監視機能を持たせて
ユーザーがユーザーとして参加しつつ
監視ノードとしても働くみたいなやり方も
考えましたがそんな実装あまり聞いたことないです
というかユーザーのリソースを使って
バックグラウンドで働かせるのは
色々とまずそうな気がします
こういう事を実現したい時に
どういう設計や手法を用いるのが一般的なのか
教えてもらえたら嬉しいです アプリでフィルタしつつCloud Functionsで削除 Cloud Functionなるものを調べてるけど
頭がおかしくなりそうなくらい意味わかんない…
説明もなんか端折ってるサイト多くて難しいな >>176
読んで色々やってるんですが
npmとかnode.jsとかCLIとか
知らない概念が3つ4つ同時に押し寄せてるせいで
理解が進みにくいのとfirebase emulator:startで
faral errorが出てしまって強制終了しちゃうけど
それを回避する手段も良く分からなくて
割と詰んでる… nodebrewでnodeのバージョンを17から16に
変更したらfirebaseコマンドがzsh:not foundに
なって使えなくなってさらに詰んだ…
FireStoreとかは簡単だったのに
functionなんか難易度高過ぎないか… まずは環境変数ってものを勉強しないといけなさそう
ほんま難しい世界やで javaをインストールしたら
fatal errorが消えた…!
そんなエラーメッセージ出ないから
ずっと詰まってたわ… ようやくチュートリアルの
addMessageとmakeUppercaseが動いた!
正直コピペしただけだからあまり理解出来てないけど
もうちょい頑張ってみるわ
これを突き詰めていけば
やりたい事が出来るような気がする とりあえずチャット部屋の投稿を監視して
何か投稿があればそれをトリガーとして
その部屋の過去投稿のうち1時間以上古い投稿は
データベースから削除するっていう機能が出来た
凄い時間かかったけど作ってみれば10行ちょっとだった 良かったな!おめでとう
俺も今現在、詰まってるけど頑張る ありがとう
まだ課題たくさんだけどひとまず何とかなった感じ
何か処理がめちゃくちゃ遅い
→データを1件Firestoreに書き込むだけで
4秒くらいかかる事がある?
PubSubでscheduleで処理を実行を
試したいけどemulatorでは処理が走らない
→本番環境じゃないと実験出来ない
Promiseとasyncとawaitの概念が
全然良くわかんない
って辺りがネックで開発の進みが遅い
少しずつ理解していくしかない… 漏れは、Windows 10, WSL2, Ubuntu 18.04 だけど、
Ruby on Rails で開発するために、
日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby のrbenv, node.js のnodenv を入れた
node.jsを入れると、npm も入る
yarn は、それとは別に入れる。
npmで入れないで、直接入れる
最近は、Docker も多い 画面汚くてごめんなさい
https://i.imgur.com/ivRJLP4.jpg
この入力途中に出てくる小さい情報ウィンドウが
バグっててちゃんとメソッド表示してくれなかったり
下の情報が常にUIColorになるんだけど
どうやって直せばいいでしょうか?
このウィンドウの名前分からないので
調べようもなく… 画面汚すぎワロタw
xcode 補完 効かない
でググっていろいろ試してみたらどうか >>187
ありがとう治りました
補完か…その言葉が出て来なかった…! バックグラウンドに移行してある程度長い時間が
経過した後にフォアグラウンド復帰したら
アプリの最初の画面に自動で戻されてしまいます
これはどのアプリでもそういう仕様になってると
思うんですがひとつ問題がありまして
チャットアプリを作ってるのですが
OSによって強制的に部屋のビューから
最初のビューに戻されたことになるので
退室処理が正しく行われないです
なので他のユーザーから見ると
既にいないユーザーがまだ部屋にいるかのように
見えてしまいます
OSによる強制退室が発生する直前に
アプリ側で正しい退室処理をしたいのですが
OSの強制イベントを検知して
アプリで終了処理をバックグラウンドで
走らせることは可能でしょうか?
可能ならメソッドやdelegate等の
キーワードだけでも教えてもらえると嬉しいです applicationWillResignActiveと
applicationWillEnterForegroundとかで処理して
基本的なことだから公式のチュートリアル的なガイドを読んだ方がいい 一定間隔で鯖にアクセスさせることにして
アクセスなければ鯖側で退出処理 フォアグラウンドとバックグラウンドの
移行タイミングのdelegateは認識しているのですが
何が問題かと言いますと
@バックグラウンドに行く時に退室処理はしたくない
→例えばブラウザを見に行ったり、別のアプリを一瞬見に行くたびに退室処理されると不便
Aバックグラウンドに行ったっきりになる可能がある
→10日間くらいバックグラウンドにしたままになる
可能性に対して、実質はOSの処理によって
フォアグラウンドに戻っても部屋に
戻れる可能性がないのに退室処理がされないままになる
これは他のユーザーからの見え方としてまずい
つまりバックグラウンドに何分いると
セッションが切れるのかが分かりませんが
そのタイミングで退室処理を行いたいということです
それ以外のタイミングで退室処理はしたくない
というのが理想です…
バックグラウンドに入ったとか
フォアグラウンドに戻ってきたとかの
イベントを拾っても↑は実現できないので
困っていたという感じです
分かりにくくてすみません… >>191
なるほど
例えばバックグラウンドに入ったら
ハローパケットの送信を停止して
ハローパケットが5分間届かなかったら
退室処理が行われる
って処理を実装する的な感じですかね
なんか行けそうな気もしますが
OSの強制巻き戻しが発生するタイミング以外では
なるべく部屋に残留させたいので
強制ビュー巻き戻しのタイミングは
知りたいところではありますが
それが分からなければ最悪その方法で
実装してみます!
ありがとうございます フォアグラウンドの状態から通信切れてそのままだとどうするの? >>194
機内モードとかにして通信が切れた時は
アプリで検知できるので仮退室モードにしていて
メッセージ送信ボタンを押せなくしてます
急にタスクキルしてアプリ終了したときは
cloudFunctionのonDisconnectが働いて
退室処理がされるようになってます なぬ、Realtime database使ってたのか flutterに挑戦してみたけど自分には手に負えなさそう >>196
Realtime databaseで各部屋の
接続中のユーザーリストを管理してます
・ユーザーが退室する(退室ボタンを押す)
・Firebaseとの接続が切れる(onDisconnect)
は検知して対応できるんですが
知らぬ間にOSに殺された時は
onDisconnectも発火しないようで
ゾンビユーザーとしてrealtime databaseに
残ってしまうようです >>198
BGに移行するタイミングでステータスを鯖で保存、仮で退出とかね
一定時間が経過したら鯖で退出処理を行う
FGに戻ったタイミングでiOSから鯖のステータスを確認したらどうだろう? あとは Background Processing Tasks で対応する感じかなー
俺は使ったことないけど参考になれば 15秒毎にアクセストークン再発行させるとか
DHCP refreshみたいな 課金が難しい
レシート発行以降が全然わからない
公式や説明してくれてるサイトも結構あるがどれもわかりにくい SwiftUIってかなり仕上がってきてると思ってるんだけど、今までのアプリを書き直す勇気が出ない
新規アプリはSwiftUIだけで書くのが正解? SwiftUI覚えたくてアプリ作ろうと思ったものの
色々と知識が欠乏してるから
途中でSwiftUIだと出来ない事が発覚したら
凄いショックだろうなと思って
いつもヒヨってSwiftで書き始める… 今のところSwiftUIで実現できないことはないけど、情報が少ないと思うかな いつかSwiftUIに移行する気なら早い方がいいんじゃないかな
これから追加されていくんだし FirebaseのRealtime databaseを使ってるんだけど
observerで値を監視していて変化があれば
通知が届くようになってるんですが
@iPhoneをロック状態にする
Aデータベースの値をいじる
BiPhoneをスリープから復帰させる
C手動でdatabaseの値を取得する
という手順で行った場合
Cのデータ取得時にAでいじる前の
データが取れているような挙動をするんですが
それって正常ですか?
コンソールログを見ていると
Cで取得でデータを取得した後に
Aでいじった値変更イベントが届いてます
変更イベントが届く届かないに関わらず
直接サーバーにアクセスして値を取得してるので
最初の状態の値が取れて欲しいのですが、、、 ちなみに似たような手順なのですが
@アプリをバックグラウンドにする
Aデータベースの値をいじる
BiPhoneをフォアグラウンドに復帰させる
C手動でdatabaseの値を取得する
で行った場合は少し挙動が違って
Bの復帰時に必ず先に変更イベントが届くので
手動で取得した値は最新のものになってます
手動っていうのはボタンを押すとかじゃなくて
getDataメソッドを実行しているということです
このロック画面からの復帰か
バックグラウンドかの復帰かの微妙な違いによって
アプリの挙動が変わってしまって
困っている感じです
ロック画面の時も最新のデータを取りたいのですが
普通にgetDataで最新じゃないデータになるなんてこと
あるんでしょうか?
Aは直接サーバーのデータをいじってます バックグラウンド中とロック画面(スリープ中)は
一度オブザーバーの監視を切って
フォアグラウンド復帰時に手動でデータを取得した後
オブザーバーの監視を再開したら
ちゃんと最新のデータが取れる様になりました
後学のために聞きたいのですが
オブザーバーで監視中はオブザーバーが
受けたイベントが最優先でサーバーの
状態だと判定されるんですかね? 関係ないけど有料アプリを公開してて
本名晒さないといけないのキツいなぁって思ってたけど
調べてみたらAndroidの場合は住所公開しないと
いけないらしくてもっとキツくてワロタ
悪どいこととか詐欺は考えてないし
そういう仕様にしたい気持ちは分かるけども
何かあったら日本中世界中からフルボッコに
されてしまうこの時代に本名住所公開って
怖すぎませんかね… >>212
まぁ確かに言われてみるとそうなんだけどもさ… 本名がイヤだったから法人を作った俺みたいなやつも居てるよ 不動産とか、会社の役員とか、すべて公開されている。
N国の立花は、NHK 会長のマンションの前で、選挙演説をしていたw
車の所有者もかな? SwiftUIのネーミング腹たつわ
なにがTextだよTextViewにしとけや
かと思えばProgressViewお前なんでProgressじゃねぇんだよ
FoundationにすでにProgressがあるからってか
じゃあ全部View付けて統一しとけks iPhoneアプリの公開の仕方の情報は沢山あるんですが
2本目を出すときの事がちんぷんかんぷんなので
教えてもらえたら嬉しいです
https://zenn.dev/moutend/articles/feebf0120dce6e6426fa
を見てるんですが1本目の公開と違って
必要ない手順がいくつかあると思うんですが
この中で手順5と手順6の
Certificateの作成とProvisioning Profileの作成は
2本目の公開からは必要のない手順になりますか?
それとも全ての手順が毎回の公開において
必要なのでしょうか? 3から始めて56飛ばしですね
ありがとうございます 5は飛ばせたけど6を飛ばしたら
7で詰まったから3から始めて5飛ばしが
2回目以降のやり方のようです
自分用のメモとして SwiftUIやるくらいならflutter
と言うかSwift面倒くさくてやりたくない
ほとんどの情報が古い なんか分かる気がする、まずXcodeが出してくれるエラーの意味を覚えたらラクになるよ
あとはAppleのドキュメントの読み方と意味かな
情報は古いものが多いけど、コピペしてエラー修正を繰り返すと意外と理解も深まるよ https://i.imgur.com/xeClwjB.jpg
kernで文字間を調整してるんですが
どうもiOS15だとこの設定が効かないようです
1.5を極端に大きい数字にしても文字間が変わりません
iOS15でUIButtonのtitleLabelの
文字間を変えるにはどうすればいいんでしょうか Ipad向けの開発で場合、SwiftかC#かで悩んでいます
Apple製だけあってSwiftの方が相性がよいでしょうか? >>227
特別な縛りがないならSwiftの方が断然良いと思います、環境構築から色々と面倒だと思います テストアプリをiPhone実機に
インストールしたら
7日間は、動作しました。
無料開発ライセンスです。
99ドル払うと、
1年間は、アプリが動作する? >>231
暇なら7日おきに署名して再インストール LisencePlistで質問なのですが手動で追加したライブラリの場合
yamlというものを使うと公式ページに書いてあるのですが
yamlファイルの中身の記述方法だけ書いてあって
どのようにそれを追加するのか設定するのか
全く分からない状態です
他のWebサイト見てもみんな普通に出来ていて
どうして何の説明もなしに出来るのか分からないです
yamlはjsonファイルみたいなものって事は分かったのですが
プロジェクトファイルに入れてみても特に変化ないし
やり方教えてくれるいませんでしょうか 手動で追加したライブラリという表現は間違えました
手動で追加したのはライブラリではなく
ライセンスのある画像です
(なのでライセンス表記が必要) iOS開発初学者なんですけど、object-cはもう滅んで、
今はswiftのみって認識で良いですか? object-cとstory boardに未来はないが過去がある Swift初学者ですが、Object-Cが関わる開発には近づかない方が良いですね。
新規開発はSwiftになるし、これから憶える学習コストを負担してくれる
リッチな会社なんて少ないでしょうし。 なんでも好奇心持って取り組んだらいいやん。
どれも似たようなもんだ。 というかObject-Cが関わる開発に昔からの人を当てることができない時点で組織が悪い ロシアでApple製品売らなくなったので、結果的に Swift はロシアで使われなくなるだろう。 Swift Playgroundsはどうなんかね
Macしか持ってないから体験談が聞きたい >>244
ロシア独自OSと開発言語作るしかない
西側文明品は全て手に入らなくなるからね
中国は売るだろうけど 4.0出てからまだ日は浅いから自分で触った方が早いんじゃない?
Mac版あるし無償だし 10年ぶりにプログラミング学習勧めてるけどpython面白いなー
5chではそんな流行ってない感じ? CollectionViewで複数のセルを選択するデザインを作っているんですが
didSelectItemAtのdelegateの中でセルにボーダーを付けて
didDeselectItemAtのdelegateの中でセルからボーダーを消す
という実装方法で正常に動いています
それとは別に全選択と全解除のボタンを用意したのですが、
@全選択を押した時にdidSelectItemAtを呼び出す
A全てのセルにボーダーがつく
ここまでは意図した動きになっているのですが
B特定のセル(ボーダー付きのセル)をクリックする
CなぜかdidSelectItemAtが発行されてしまう
Cのタイミングではボーダーを取り除いて選択解除したいのですが
なぜかdidSelectItemAtの方が発火されてしまいます
もう一回同じセルをタップすると今度はDeselectの方が呼ばれるので
選択解除になります。
自分でボーダーを付けているので選択している風に見えているのですが
実際にはプログラム内部的にはそのセルは選択されていないと見なされて
いるんじゃないかなと予想しているのですが
何をすれば選択状態と見なされるのかが分からず、、、
お詳しい方おしえていただけると助かります 即日採用、Swift 5000万MAUのサービス
って何の案件?
デスマしか予想できなくって応募するのが怖いんだけど
人がいなくなって回らなくなった現場ってことでしょ? >>252
Aをフラグ値で記憶して動作を変えればおk swift勉強し始めたけど、本やネットの情報が古くて困る。 言語関係なしに新しい情報が欲しかったら英語必須みたいなとこあるからね・・・ 正規表現リテラルが書けるようになりました!(ドヤァ FloatingPanelを使ってみたくて導入をしたんですけど、これってWebView使ってブラウザ表示は出来ないんですか?
ViewControllerにWebViewを置いただけにしてGoogleを表示させようとするとwebview.load(xxx)の部分でエラーが出てクラッシュするんですよね。
FloatingPanelを使わないで推移すると普通にGoogleが表示されるし、WebView消して何も無い状態であれば問題なくFloatingPanelの形でViewだけが表示される。
誰か助けて。 core motionで取得した姿勢データと時刻データとをcore dataで保存しようとしているのですが、60Hzでcore data のsaveを行って平気でしょうか。
通常、このくらいのスピードならデータを溜めてからsaveとかしないものですか? >>263
試した方が早いと思う
結果は教えてください>< わいのアプリ100Hzでやってるんだけどやっぱバッテリー負荷でかいんかな
どの程度変わるのか気になる まとめてからsaveのやりかたが分からんかったから、60hzで一個一個saveしたけど、特に問題なさそうだった。なので比較はできなかった。 saveってどんな感じで処理してんの?
自分は素人だから配列にどんどん放り込んでるんだけどアカンのかな