ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

Transferable の捉え方。Swift言語 - iOS16

この記事はユニファAdvent Calendar 2022の3日目の記事です。

iOS16 から新たにSwiftで使用できるプロトコルとしてTransferable が追加されました。

プロトコルに〜able とついた名称はAppleが実現したい機能を提供したいときに用いる傾向があるのですがとはいえ、Transferable="譲渡可能な" と訳するといまいち用途が分かりにくいしどこで使うかわからない。そんなTransferableについての説明となります。

対象とする方々

iOSアプリ開発者の皆様。

説明するもの

  1. Transferableが取り扱うもの
  2. Appleの意図は何?
  3. iOSアプリ開発者にとってTransferableは重要?

説明しないもの

実際のコード。WWDC2022のセッションにてPhotosPickerから写真を取得する際にTransferableの使い方が紹介されております(14分程度のセッションで視聴しやすくお勧めです)。

1) Transferableが取り扱うもの

TransferableはiPhoneやmacOS上で動くアプリやフォルダー、写真フォルダといったデータをやり取りできる同士のやり取りを扱うのがTransferableです。Transferableの使い方を守っていればローカル、ネットワークサービスを介するかは意識せずに済みます。図でいうと、macOSのフォルダーがクラウドサービス上にあるファイルかローカルにあるファイルかを気にしないようにアプリにファイルを渡すことができます。

またデータのやり取りの方法は、

  • コピー&ペースト
  • ファイルのドラッグ&ドロップ

となります。デスクトップOSで何気なく操作している操作ですね。

Transferable が対象としている箇所

上記の図は概念的なもので実際にはデータのやり取りにはOSが介在しておりOSがアプリから必要な情報を必要とします。

アプリ同士のデータのやり取り

Apple云く、

ドラッグ&ドロップ コピー&ペースト その他のAppの機能をサポートする 宣言的方法

とのことです。これまでiOS SDKではSwift,Objective-C での逐次的プログラミングも加味した機能であったものを宣言的プログラミングに即するかたちで提供したのがTransferable プロトコルと言えます。

続きを読む

2022年のユニファ開発者ブログを振り返る!

この記事はユニファAdvent Calendar 2022の1日目の記事です

adventar.org

皆さんこんにちは!ユニファのエンジニアマネージャーの田渕です。

さて、今年も残りわずかとなり、Advent Calendarの季節がやって参りました。 ユニファ開発者ブログのAdvent Calendarは2019年に始まり、今年で4回目! ここまで続けて来られたのも、日々こちらを見に来て下さる皆さんや、執筆してくれるメンバーの皆さんがいてくれるおかげだと思います。 感謝感謝です。

昨年は

ユニファ開発チームの2021年を振り返る - ユニファ開発者ブログ

と言うことで一年間の活動の振り返りを書いた私ですが、今年はこの開発者ブログについて振り返ってみようと思います!

続きを読む

GraphQL on Rails

By Harvey Ico, backend engineer at Unifa.

Building your own API structure can be chaotic specially if you have a lot of endpoints, and maintaining documentations are troublesome. If you've been a backend engineer for a while now like me, you probably already tried to search "how to organize" your API routes, documentations, etc. And you probably saw GraphQL at some point.

GraphQL was developed internally by Facebook in 2012 before being publicly released in 2015. But what is it actually? Well, to put it simply, GraphQL is a query language for your API. How it works is that you will have a single API endpoint wherein you can pass query or mutation to get your desired outcome. I think what makes it really cool is that you can pass multiple queries or mutations at once. Hence, it became really popular on SPA (Single page application) websites when integrating their API, specially if you are using VueJS, React, etc.

But how do you even build or use it? Don't know where to start? Then you've come at the right place. Here, I'm going to guide you how to build your own GraphQL API using Ruby on Rails.

続きを読む