去年の秋から、カナダのバンクーバーで暮らしています。 最初は短期のつもりできたんですが、いつの間にかもう1年近くたちました。 カナダに来たわけ しばらく前に結婚した娘がバンクーバーで暮らしているので、この数年は何回かバンクーバーに遊びに来てい…
この秋にリリースされる予定の iOS17では、Personal Voiceという新機能が搭載されています。 自分の声をiPhone に学習させ、どんな文章でも自分の声で読んでもらうことができる機能です。 Personal Voiceの作り方 まず、iOS17のiPhoneで、言語設定を英語にし…
ゼルダの伝説、ティアーズオブキングダム、一昨日発売されてさっそくはまっています。今作から導入された座標系について、ネタバレなしです。 座標の意味 マップの画面の右下に3個の数字がありますね。 1個目がx位置、2個目がy位置、3個目がz位置を表し…
Matplotを使ってグラフを描いた場合、環境によって文字が表示されないことがあります。 そんな時には、好きなフォントを設定してみましょう。 フォントを指定しない場合 まずは普通にsinグラフを描いてみましょう。 import numpy as np import matplotlib.py…
iOS14から使えるようになった、 UIContentConfiguration 、便利ですよね。 CollectionViewCellを作らずにCollectionViewを使えます。 UICollectionViewListCell のdefaultContentConfiguration まずは、 UICollectionViewListCell の、 defaultContentConfig…
UIViewでもこっそり Property Wrapperが使えるようになっていました。 (なお、iOS15からです。) UIViewの表示の更新 今まで、UIViewの見た目を変更するには、View自体を作り直すか、Viewの更新処理を手動でよんだり(setNeedsDisplay)していました。 iOS15…
夜中にコーディングしていて、サーバーAPIから取得したjsonデコードに失敗したんだけど、もう疲れていて詳しく調べるのがめんどくさいことってありませんか? そんな時にはDecodingErrorをみてみましょう。 jsonデコードのエラー iOSの標準のjson decoderはJ…
async/await使ってみましたか? コードがすっきり書けるようになって、とても便利ですよね。 必要な情報だけチェックしてすぐ動かして確認したい方向けに、ざっくりした情報を書いてみました。 すぐ使えるSwift Concurrency!なので、とりあえず書いてみてく…
たまに、APIの結果を処理するときに、MIME Typeを見てから確認したいってことはありませんか? 基本的にはjsonが返るAPIだけど、エラー時にはhtmlになるのでjsonかhtmlか判別してから処理をしたいとか。 そんなときにはURLResponseを見てみましょう。 API He…
いつも自分で書くコードはすっかりSwiftですが、システムライブラリはまだまだObjective-Cのこともあります。 ObjCのライブラリが返してくれる CFString をSwiftの String にするメモ。 基本的には、CFString はそのままConvertできます。 var str1: CFStrin…
前回のこちらの記事でSceneKitのビューをPlaygroundで表示する方法について書きましたが、Playgroundは通常のView表示だけでなく、ARもサポートしています。 PlaygroundSupportでSceneKitの画面を表示する - Toyship.org iPadだけでARができるのはハードルも…
みなさん、Xcodeのプレビュー機能は使いこなしていますか? 私の環境では、プレビュー画面が表示されないことが時々あります。 作業しながらSafariのタブを数百ページくらい開いていることもあるので、メモリー不足だとはおもうんですが。 Xcodeを再起動した…
iOS14の新機能、AppClip。なんかあのにゅっとでてくるやつです。 対応しているアプリをあまり見かけないので実装してみました。 是非、実際の端末で動かしてみてください。 実装 どうやって実装するのかの情報はWWDCでもでていましたが、どんなタイミングで…
今年も 9/19 から 9/21 に開催されたiOSDC 2020に参加しました。 Synchronized iPhones, Again! 今年はこちらの内容で発表させていただきました。 複数のiPhone端末を連携させて動かすためにはどんな実装ですすめていけばいいのかというお話をデモをまじえて…
WWDC2019で紹介されたCombineはSwiftで使えるasync frameworkです。 iOS13以上でしか使えないのでプロダクツに導入するのをためらっていましたが、そろそろ導入できそうですね。 まだCombineを導入していない方向けに、Combineの簡単な使い方を書いてみまし…
去年のWWDC2019で発表されたSwiftUI。 待望の Swift製のUIライブラリでしたが、実際のところはUIHostingController上に新しいSwiftUIのViewをのせる方式で、過去互換性を守っていました。 そうするしかないだろうとは思ってたんですけど、中途半端さにすっき…
NearbyInteractionとはiOS14で導入された新しいフレームワークです。 近距離無線チップを使い、複数の端末の距離や方向を測定することができます。 UWB UWBとは、iPhone 11で導入されていた近距離無線チップです。 何に使われているのかよくわからず、売りに…
ちょっと思い立って、Audio Queueを使ったAudio録音ができるコードをかいてみました。 github.com 基本的にはAppleのだしているhttps://developer.apple.com/library/archive/documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/Introduction/…
AppleがARKitを発表してからもう2年以上たちました。 今回 iPad Proの発売にあわせてリリースされたARKit3.5では、また新しい進化がありました。 なにができるようになったのかみていきましょう。 Scene Geometory ARKit3.5では、新しい iPad Proに搭載され…
今年は年初のバリに始まって8カ国で海外リモートワークをしました。 バリ(インドネシア)(バリ島で開発合宿 - Toyship.org) ギリシャ(サントリーニ)(サントリーニ島で花粉症退避の開発合宿をしてきました。 - Toyship.org) バンコク フィンランド ス…
今年の3月、サントリーニ島で花粉症退避のための開発合宿をしてきました。 私は花粉症の症状がひどく、3月の中旬には1日にボックスティッシュを一箱使ってしまうくらいの流量になっています。 当然仕事などできるわけもなく、出社してもいつもぼーっとしなが…
今年の3月にサントリーニ島に開発合宿に行ってきた(サントリーニ島で花粉症退避の開発合宿をしてきました。 - Toyship.org)んですが、サントリーニ島は、地質学的にみてもとても興味深い島でした。 サントリーニ島の形 サントリーニ島はこんな形をしていま…
今年の3月に、サントリーニ島で花粉回避開発合宿をしてきました。(サントリーニ島で花粉症退避の開発合宿をしてきました。 - Toyship.org) 今年はヨーロッパに何カ国かいったんですが、サントリーニ島は群をぬいて猫の数が多かったです。 塀の上の猫 数が…
Closureを使っていたら、ちょっと予想外の動作になってしまっていました。 超・基本的なことですが、動作確認したのでメモ。 closureの循環参照と weak self weak self をなぜ使うかというと、循環参照によるメモリーリークを避けるためですよね。 closureを…
これはiOSアドベントカレンダーの2日目の記事です。 毎年アドベントカレンダーでは、カレンダーに関係あることを書くことにしています。 今回は来年5月の改元。 iOS始まって以来の改元ですね。 改元前にバグになりそうなポイントを確認しておきましょう。
iOSDC 2018、去年と同じく、今年もスタッフ兼スピーカーで参加しました。 (記事中の写真は、すべてiOSDC写真チームのみなさんの写真です。毎年素敵な写真をありがとう!) 去年のiOSDCも楽しかったんですが、今年はそれをうわまわる充実感でした。 www.toys…
今朝発表された iOS 12では、ARがいままでになく身近になりました。 実は、わざわざアプリを作らなくてもARを実現できるようになっています。 iOS12でなにができるようになったかみてみましょう。
フリーランスエンジニアをはじめて1年半たちました。 お仕事を紹介してくださる方々のおかげに加えて、ますます逼迫してきているモバイルエンジニア不足もあり、そのあいだお仕事が途切れることはありませんでした。 ただ、1週間単位の休暇がとれないと、…
先日、iOS 11.3のベータがリリースされました。 ARKitがアップデートされて、ARKit1.5となり、画像認識や垂直面の認識などができるようになりました。 (この記事は、公開されている情報に基づいて書いています。) ARKit 1.5 ARKit1.5でのアップデート内容…
このブログは、今までさくらレンタルサーバーのWordpressをで配信していたんですが、はてなブログにひっこしました。 なぜひっこしたのか Wordpressでは、デフォルトではマークダウンを使った編集ができません。 プラグインをいれると、マークダウン編集を含…