Pythonista3 （使いの私）が、この先生き残るには？（Pythonista3 Advent Calendar 2022 後夜祭）

この記事は、[Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) の26日目後夜祭です。

https://qiita.com/advent-calendar/2022/pythonista3

一方的な偏った目線で、Pythonista3 を紹介していました。

あ、どうも。（自称）iPhone でのコーディング時間世界一を名乗らせてもらってもらっている者です。どうぞよろしくお願いします。

アドカレ参加によりひとりで25日分の記事を書きました。結果としてiPhone でのコーディング時間世界2位の方と差が広がる一方です（2位とは？）。

以下、私の2022年12月時点の環境です。

```sysInfo.log
--- SYSTEM INFORMATION ---
* Pythonista 3.3 (330025), Default interpreter 3.6.1
* iOS 16.1.1, model iPhone12,1, resolution (portrait) 828.0 x 1792.0 @ 2.0
```

他の環境(iPad や端末の種類、iOS のバージョン違い)では、意図としない挙動(エラーになる)なる場合もあります。ご了承ください。

ちなみに、`model iPhone12,1` は、iPhone11 です。

## この記事でわかること 🥸

- [Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) の振り返りとサマリー
  - 使用モジュール
  - おすすめ度
- iPhone でコーディングをしていくことについて

## 振り返りとサマリー 📝

完走した感想ですが、疲れました 😇

一日一日、ていねいなかんそう。としようとしましたが、クッソ長くなりそうなので、続きものはマージさせています。

### day00

- タイトル:
  - [Qiita API v2 でPythonista(3) の記事を取得する（Pythonista3 Advent Calendar 2022 前夜祭0日目） - Qiita](https://qiita.com/pome-ta/items/74afb37769173dab8c6c)
- 概要: Qiita API v2 を使って、tags の情報を取得するやり方。また、Pythonista3 上で取得した情報の加工。
- 使用モジュール:
  - requests
    - [Requests: 人間のためのHTTP — requests-docs-ja 1.0.4 documentation](https://requests-docs-ja.readthedocs.io/en/latest/)
  - pathlib
    - [pathlib --- オブジェクト指向のファイルシステムパス — Python 3.11.0b5 ドキュメント](https://docs.python.org/ja/3/library/pathlib.html)
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

本編25記事中、7記事目あたりで「前夜祭も書いたろ！」と思いつき執筆開始。

普段はAPI を叩くことをしない（ギガが無くなるのが怖い）ので、調べては実行を繰り返してコードが完成。いまだにAPI の使用上限にドキドキするし、トークンをどこに格納するのがベストか悩んでいる。

「1〜7日目の記事と文体が違うんだよなぁ」と一丁前にトンマナが気になり出し、書き溜めている記事と見比べるなど無駄な時間が多かった。

抽出した記事では、過去に読んでいなかったり、素敵な記事を思い出したりと一括で取得することで見えてくるものもあるなぁとしみじみ。

記事の頭の方に、執筆中のキャプチャGIF を載せて、頑張っている雰囲気をだしている（Pythonista3 での入力画面）。

https://requests-docs-ja.readthedocs.io/en/latest/

https://docs.python.org/ja/3/library/pathlib.html

https://qiita.com/pome-ta/items/74afb37769173dab8c6c

### day01 | day02

- タイトル:
  - [Pythonista3 やろうぜ！標準機能をみてみる 〜 コーディング編 - Qiita](https://qiita.com/pome-ta/items/89c700805537b5ca9c86)
  - [Pythonista3 やろうぜ！標準機能をみてみる 〜 内部外部のデータ編 - Qiita](https://qiita.com/pome-ta/items/a919d6780b4e4a5b72db)
- 概要: 普段Pythonista3 を使うにあたり、自分自身が行っていることや感じていることをPythonista3 の機能とともに紹介
- 使用モジュール:
  - 特になし
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

Documentation はあれど、機能だし、英語だし、、、と、全てはカバーしきれないけども「こんな機能があるんやでー」的に紹介。

「何か困ったら公式のリファレンスを読む」ムーブをPythonista3 で勉強させていただきました☺️ とはいえ、Qiita や個人ブログからの公式リファレンスの導線って大事ですわね。

テキストエディタ大好き感情を抑え込むことができず、支離滅裂な思考・発言が目立つ。

Pythonista3 とは？」といった丁寧でわかりやすい記事は、たくさんあるので下位互換を2022年年末に産み落とさないように気をつけ、は、した。つもり。

https://qiita.com/pome-ta/items/89c700805537b5ca9c86

https://qiita.com/pome-ta/items/a919d6780b4e4a5b72db

### day03 | day04

- タイトル:
  - [Pythonista3 のeditor module を使い、Pythonista3 のコーディングを楽にする - Qiita](https://qiita.com/pome-ta/items/c3902a0f6a0de691df8d)
  - [Pythonista3 のKeyboard で、Pythonista3 のコーディングを楽にする。人生を豊かにする。 - Qiita](https://qiita.com/pome-ta/items/5483d021fdfa44ea43e0)
- 概要: iPhone でコーディングをする際の、普段使いの便利スクリプトたちを紹介している
- 使用モジュール:
  - editor
    - [editor — Functions for scripting Pythonista’s text editor — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/editor.html)
  - clipboard
    - [clipboard — Copy and paste — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/clipboard.html)
  - keyboard
    - [keyboard — Utilities for the Pythonista Keyboard — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/keyboard.html)
- おすすめ度: ★★★★☆

#### 振り返り（独り言）

👩 「えーマジ？iPhone でコーディング！？キモーイ」

👧 「iPhone でコーディングが許されるのは小学生までだよねー」

👩 & 👧 「キャハハハハハ」

🤦 （小学生でやってた方がヤベぇよ、、、）

な、令和のこの時代（被害妄想）。「もしかしたら携帯でコード書くって、ありよりのありでは？🤔」 と勘違いしてくれる人がいることを夢見た記事。

コーディングするのを楽にするためにコーディングをして、そのコーディングを便利にするためにコーディングをする極楽の無限回廊。

（Vim を使わせていただいてますが）`.vimrc` をいじりVim ライフを快適するサイクルに似ていますね。どこでも操作できるPythonista3 の沼度もなかなかですぞ〜

基本的にスクリプトの完了通知を、触覚フィードバックしているが、[PythonやJupyterでiPhone/iPad先端機能を簡単･自由にプログラミング！「土台篇」：hirax](https://techbookfest.org/product/wTZTyeibm5GQ5XgdfMrEBV?productVariantID=kRDmN1udbEYZUWbETdwL8r) の書籍内で使えることに気がつき、普段使いのスクリプト全てにぶっ込んだ。

https://qiita.com/pome-ta/items/c3902a0f6a0de691df8d

https://qiita.com/pome-ta/items/5483d021fdfa44ea43e0

### day05

- タイトル:
  - [Pythonista3 のuiモジュールを使ってアプリでアプリをつくる下準備（View編）。 - Qiita](https://qiita.com/pome-ta/items/2f02d94eea73974aae88)
- 概要: GUI アプリを作成するためのui モジュールの基本的な使い方
- 使用モジュール:
  - ui
    - [ui — Native GUI for iOS — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/ui.html)
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

iPhone アプリでiPhone アプリを開発できるようにするため、Pythonista3 では必須モジュール（と、考えている）のui モジュールの基礎的な実装と挙動を紹介。

とはいえ、`ui.View` 以外は省略する力技で、View にadd していけばええんやで。と随分といい加減な紹介となってしまった。

`frame` のサイズがfix するタイミングがわかれば、やりたいようにレイアウトが組めるようになるし、作りたいものなんてそれぞれでニーズが違うからなぁ。と、基本的な概要紹介をすることの難しさを痛感。提供側の抽象度と、受け取り側の抽象度理解のせめぎ合いなんですわね。

https://omz-software.com/pythonista/docs/ios/ui.html

https://qiita.com/pome-ta/items/2f02d94eea73974aae88

### day06

- タイトル:
  - [Pythonista3 のui モジュールを使って絵を描く 〜 クリエイティブコーディングする 〜 - Qiita](https://qiita.com/pome-ta/items/8e565dc6bdc283b4b80e)
- 概要: 数学の関数（sine）を使って、View 上に線を引いてなんか綺麗に見せる
- 使用モジュール:
  - ui
    - [ui — Native GUI for iOS — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/ui.html)
  - math
    - [math --- 数学関数 — Python 3.11.0b5 ドキュメント](https://docs.python.org/ja/3/library/math.html)
- おすすめ度: ★★★★☆

#### 振り返り（独り言）

見た目って大事ですよね。なんか「お！？」となってもらえればと、早々にクリエイティブコーディング要素を紹介。

私自身、プログラミングの入りがprocessing で、グラフィックスでフィードバックが来るプログラミングが好きなんですよね。

Pythonista3 ではmatplotlib が使えますが、ui モジュールのView にmatplotlib の結果を乗せるとなると、結構面倒になり遠回りな気がしているので、グラフ表現の正確さはないですが、`draw` で数値を扱い描画するくらいはできたら、色々幅が広がるかと考え紹介。

逆に、無駄が多い処理でView がカクカクしていると「あーiPhone 頑張っているのね〜」って気持ちになってちょっと好きです。

https://qiita.com/pome-ta/items/8e565dc6bdc283b4b80e

### day07

- タイトル:
  - [ワイ「Pythonista3 のscene モジュールを紹介するんだよ？」 - Qiita](https://qiita.com/pome-ta/items/d436796a7669e7c29ea5)
- 概要: 過去scene モジュールを使って作成したコードの紹介。紹介コードをゲームに限定
- 使用モジュール:
  - scene
    - [scene — 2D Games and Animations — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/scene.html)
  - する
- おすすめ度: ★☆☆☆☆

#### 振り返り（独り言）

滑った雰囲気を出した可笑しさを狙ったら、ダダ滑りして目も当てられなくなったやつ。

アドカレがちょうど1週間ということで、息抜きついでに書き出したら、呼吸ができなくなっていた。

ゲーム作りって全方面いろいろケアしなくては行けなくて大変ですよね。存在しているゲームの移植ですら私は超大変だった思い出です。

https://qiita.com/pome-ta/items/d436796a7669e7c29ea5

### day08 | day09

- タイトル:
  - [Pythonista3 のscene モジュールでShader コーディング。GLSL をやる。 - Qiita](https://qiita.com/pome-ta/items/57edede9a7e3ce73cdc7)
  - [ui モジュールとscene モジュールの組み合わせ - Qiita](https://qiita.com/pome-ta/items/0e2d3bd3e22fe922f2c0)
- 概要: Pythonista3 でグラフィックスなコーディングが超おすすめですし、楽しいですよ！もう土壌は作ったので好きにやってください！的な感じ
- 使用モジュール
  - ui
    - [ui — Native GUI for iOS — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/ui.html)
  - scene
    - [scene — 2D Games and Animations — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/scene.html)
- おすすめ度: ★★★★★

#### 振り返り（独り言）

呼吸が止まるレベルの精神的ダメージを追ってまでも、7日目の記事を書き終えられたのは、8日目9日目へ早く行きたかったから（ありがとう、GLSL。ありがとうprocessing）。

とはいえ、ここの振り返りで書くことはあまりなく。。。GLSL って大変だけど面白いよ（8日目）！processing っぽく書けるよね（9日目）！（迫真）。くらい。。。

手元で気軽に実行できるiPhone と、グラフィックスなプログラミングってかなり相性いい気がするのですよね。端末的にも高スペックですし。ただ、私が好きだからそう感じているだけですかね？

PC の前に座って、いざ「やるぞ〜」って始めようとすると「あれ？何をしようとしていたんだっけ？」と、気持ち切り替えとモチベーションの差異が出てしまって、なかなか進まないんですよね。これって私だけですか？

https://qiita.com/pome-ta/items/57edede9a7e3ce73cdc7

https://qiita.com/pome-ta/items/0e2d3bd3e22fe922f2c0

### day10 | day11 | day12

- タイトル:
  - [Pythonista3 でPythonista3 内のディレクトリを探訪しよう！ - Qiita](https://qiita.com/pome-ta/items/d7ce9fe64e1ba774fae4)
  - [先生ぇー！Pythonista3 のディレクトリ探索にwebbrowser モジュールは使えますかー？ 〜 使えます 〜 - Qiita](https://qiita.com/pome-ta/items/3315732c8db62a55b86b)
  - [ディレクトリ探訪の局地へ！OS の中身を覗きに行こう！（世の中にあるPythonista3 のコードをカスタムしてより良いツールへ） - Qiita](https://qiita.com/pome-ta/items/e6f32e0a24d93618f5a9)
- 概要: Pythonista3 で、iPhone 自体やPythonista3 のファイル内をPC のように閲覧できるようにする
- 使用モジュール:
  - pathlib
    - [pathlib --- オブジェクト指向のファイルシステムパス — Python 3.11.0b5 ドキュメント](https://docs.python.org/ja/3/library/pathlib.html)
  - webbrowser
    - [21.1. webbrowser — Convenient Web-browser controller — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/library/webbrowser.html#module-webbrowser)
  - ui
    - [ui — Native GUI for iOS — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/ui.html)
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

無駄に3記事と伸ばしてしまったな、、、と思いつつも、どこの場所を説明しているか混乱する可能性もあるので、仕方ないところでもあるよなと、勝手に自己解決。

Python でもファイル操作はあるし、Pythonista3 の裏側としてどのように動いているのか知る機会としても意味はあるのかもと、勝手に自己解釈。

宝探し感あるので面白い。そしてOS のバージョンが上がった時の変更点を探しにいくのも面白い。

しれっと、Pythonista3 のスクリプトたちをまとめているGitHub のリポジトリを紹介できたもの個人的にはよかった。このリポジトリ単体で記事を作るのも気が引けるし、紹介しないのもなんだかなーと考えていたので。

iOS 自体やアプリ制作は、私は門外漢でPythonista3 専門（笑）なので、ぜんぜん深く掘れている自覚はない。「こんなのあるやでー」みたいな情報があったらお待ちしています！

https://qiita.com/pome-ta/items/d7ce9fe64e1ba774fae4

https://qiita.com/pome-ta/items/3315732c8db62a55b86b

https://qiita.com/pome-ta/items/e6f32e0a24d93618f5a9

### day13 | day14

- タイトル:
  - [objc_util のprint デバッグ。Pythonista3 の黒魔術 - Qiita](https://qiita.com/pome-ta/items/fd66f3c1c7ee6a34282e)
  - [Pythonista3 のメインヒロイン。objc_util での実装の流れ（実装事例随時更新） - Qiita](https://qiita.com/pome-ta/items/333029f8852a6e2c2c7d)
- 概要: objc_util モジュールとなかよく付き合っていく個人的方法
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

黒魔術なのか、メインヒロインなのか、軸ブレがすごいのですが、結果的にメインヒロインの黒魔術です。

objc_util を使うにしても、モジュールの使い方が特殊すぎて、参考になるものも少なかったり、Objective-C 側から調べて行っても遠回りなところがあるよな。と感じており、自分がどのようにobjc_util を使っているのか紹介。

事例を追加しつつ、うまくまとまると未来の自分にも優しいと思う。

https://qiita.com/pome-ta/items/fd66f3c1c7ee6a34282e

https://qiita.com/pome-ta/items/333029f8852a6e2c2c7d

### day15 | day16

- タイトル:
  - [Pythonista3 でAVAudioSourceNode を使って音を生成して鳴らそう！ 前編 - Qiita](https://qiita.com/pome-ta/items/92a41e15b8eec5b51fb3)
  - [Pythonista3 でAVAudioSourceNode を使って音を生成して鳴らそう！ 後編 - Qiita](https://qiita.com/pome-ta/items/aa045a99947e02506f23)
- 概要: コードからリアルタイムに音を出す。
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★☆☆☆

#### 振り返り（独り言）

objc_util の基礎的な記事からいきなりマニアックな内容に飛んだ事を反省しつつ、紹介するタイミングはここしかないと、腹を括る。比較的にobjc_util の面倒なblock 処理があるので、まあいいでしょう。と、

過去にはcore audio を使った実装をしていて、AVAudioSourceNode が入ってから随分と楽に実装できるようになった印象。

世の中的に、グラフィックスの見た目の処理は充実しているが、音関係はクラシカルな処理のままで、コツコツとやっていく感じがしている。まぁ音声データを事前に準備すればいいのだけど、音関係のプログラミングの進化に期待。

https://qiita.com/pome-ta/items/92a41e15b8eec5b51fb3

https://qiita.com/pome-ta/items/aa045a99947e02506f23

### day17 | day18

- タイトル:
  - [Pythonista3 で3DCG やろうぜ！SceneKit のプリミティブなもので遊ぶ - Qiita](https://qiita.com/pome-ta/items/551bf5fb2448ddcacae0)
  - [Pythonista3 で3DCG やろうぜ！外部のデータをSceneKit へ呼び出したりして、絵力をつける - Qiita](https://qiita.com/pome-ta/items/843ecbff44d4bdc07fd0)
  - 概要: SceneKit をPythonista3 で呼び出して実行をする
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★☆☆☆

#### 振り返り（独り言）

最終的にAR に着地をしたいために、SceneKit の基礎からはじめる。SceneKit が少しでもわかっていれば、ARKit は追加機能みたいな感覚で扱えるような気がしている。何事も基礎が大事ですね。

SceneKit を実装していると、だらだらと長くなってしまうなぁ。と感じる場面がある。背景としてはScene File（`.scn`）を簡単に操作できるScene Editor があり、そのエディタのGUI を触ってみるとすこし合点がいく。

[iOS で SceneKit を試す(Swift 3) その11 - Scene Editor を使ってみる - Apple Engine](https://appleengine.hatenablog.com/entry/2017/06/16/200439)

https://appleengine.hatenablog.com/entry/2017/06/16/200439

話を飛躍させると、Scene Editor の実装とコードのみの実装で「なるほど！オブジェクト思考！」と、気づきを得ることができた気がしている。情報が整理されたGUI 上で操作するデザインと、コードを書く（行を増やしていく）行為のメリットデメリットが顕著に出ているのである。

わざわざPythonista3 で実装をすることで、普段の通常実装では気が付かない部分が見えてくるのが面白い。わざわざ面倒なことをやることで、何か気づきを得るてきな法則に名前ありそう。

https://qiita.com/pome-ta/items/551bf5fb2448ddcacae0

https://qiita.com/pome-ta/items/843ecbff44d4bdc07fd0

### day19 | day20 | day21

- タイトル:
  - [Pythonista3 でARKit 拡張現実体験をするよーーー！！！ - Qiita](https://qiita.com/pome-ta/items/29785f0edbe582210d2f)
  - [ARKit を使ってPythonista3 で拡張現実世界の平面をトラッキングしたい - Qiita](https://qiita.com/pome-ta/items/a3fdb6613ccdb3701924)
  - [出来らあっ！　え！！Pythonista3 でAR Face Trackingを！？ - Qiita](https://qiita.com/pome-ta/items/0aa69205fb3826d9951d)
- 概要: Pythonista3 でAR を実装する。平面検出と顔の検出
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★★☆☆

#### 振り返り（独り言）

SceneKit を経のARKit なので、少々ハードルは下がっているように感じている。しかし、ARKit はリアルタイム検出なので、端末のカメラ情報を取り込み、そのカメラ情報をView に出してあげる必要がある。カメラをView に登場させる方法は、先人のつよつよな人たちのサンプルがたくさんあるので、ARKit とカメラ取得とScenenKit の処理体系を部別して考えることが必要。

3DCG 関係でつきまとう、SIMD がPythonista3 ではなかなかの曲者で、まだ解決方法が見つかっていない。今回のアドカレでは紹介できていないMetal も同様にSIMD 活用が多数あり、SIMD をクリアするとまたPythonista3 でイノベーションが起こるかもしれない。

[Metalの概要 - Apple Developer](https://developer.apple.com/jp/metal/)

https://developer.apple.com/jp/metal/

あと、ARKit 関係は、リアル世界の情報をキャプチャするのでキャプチャに恥ずかしさがあるですね。

https://qiita.com/pome-ta/items/29785f0edbe582210d2f

https://qiita.com/pome-ta/items/a3fdb6613ccdb3701924

https://qiita.com/pome-ta/items/0aa69205fb3826d9951d

### day22 | day23

- タイトル:
  - [Pythonista3 でCore ML（機械学習）入門！Vision Framework を使って画像から顔を検出する。 - Qiita](https://qiita.com/pome-ta/items/84729804cce04f870fd6)
  - [Pythonista3 と機械学習（Core ML） のVision Framework で、手を追っかけてもらう - Qiita](https://qiita.com/pome-ta/items/bcac9d3209caa60f70b6)
- 概要: 機械学習の力をPythonista3 を使って感じる
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★☆☆☆

#### 振り返り（独り言）

個人的に2022年は、AI が一般普及した年だと感じている。Stable Diffusion の画像生成を筆頭に、GitHub Copilot のコード提案などなど。Core ML はそれ以前よりありましたが、使ってみるのであれば、いまですわね。

実装としては、かなり上っ面の部分を整備して、ぶん投げた結果を受け取るくらいなので、機械学習がちんぷんかんぷんでもどうにかなるのがすごい。

今回アドカレで紹介している実装だと、最新のものなのでまだまだ改善や遊び方の余地があるなと感じている。

### day24 | day25

- タイトル:
  - [WKWebView からPythonista3 でJavaScript とお戯れあそばせ - Qiita](https://qiita.com/pome-ta/items/52053dd6c9e39da6a29a)
  - [Pythonista3（WKWebView） とJavaScript の愛と友情のツープラトン 〜 コード間でのデータ受け渡し 〜。GLSL で遊ぶで！ - Qiita](https://qiita.com/pome-ta/items/d0a21d40731644c696fd)
- 概要: Pythonista3 でPython ではなく、WebView 上でJavaScript をやって、WebGL からGLSL を描画できるようにする
- 使用モジュール:
  - objc_util
    - [objc_util — Utilities for bridging Objective-C APIs — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/objc_util.html)
- おすすめ度: ★★★★★

#### 振り返り（独り言）

WebGL 最高！！！

比較的にWebGL やGLSL は大変という風潮があるが、objc_util の実装と比べれば、同等かもしかしたら優しいという勘違いのもと楽しく実装ができる。JavaScript のデバッグはeruda があるのでobjc_util よりは楽。

[Eruda: Console for Mobile Browsers](https://eruda.liriliri.io/)

https://eruda.liriliri.io/

ただ写経をすれば、動くってすごい良くないですか？絶対動くという信頼のもとコードが書けることっていいですよね。その事実だけで気軽に実装ができます。objc_util は動くのかわからないまま実装を進めますからね。。。

また、GLSL もデバッグが色でしかできないとかありますが、objc_util はなんの反応もなく落ちることがデフォなので、色の情報だけで随分ありがたいという感覚を持つことができています。

https://qiita.com/pome-ta/items/52053dd6c9e39da6a29a

https://qiita.com/pome-ta/items/d0a21d40731644c696fd

## iPhone というプログラミング環境 📱

iPhone でプログラミングをやるって面白いのです。PC でプログラムを書くのと違った、良さや楽しみがあります。

決してマジョリティになりたいわけではありませんが、候補や可能性のひとつとして程度にはあっていいのかな？とは感じています。

### 執筆環境

今回のアドカレ執筆は基本的にPythonista3（iPhone）で書いています（90% ほど）。iPhone にWorkingCopy という、Git 管理ができるアプリを入れているので、GitHub 上へプッシュしてPC との連携も簡単です。

当初は、日本語のテキストをMarkdown 形式で書くということで、iPhone もPC も[Obsidian](https://obsidian.md/) を考えていました。vault を無理矢理GitHub 連携をしていけば端末感を気にせずに書けるのかなと。しかし、画像キャプチャとそのキャプチャした画像を貼り付けるなど、結局のところPythonista3 を開く必要がでてきてしまい、そうであればPythonista3 で全部完結すればよくね？ということで、Pythonista3 で着地しました。

PC 側では、VSCode やVim で微調整をしたりPrettier で整形をしたりしています。Qiita へのアップはどうしてもPC でのブラウザに軍配があがるので（無理に全部iPhone  でやりたい訳ではない）、最後のお化粧的にPC を使う感じでした。

決してiPhone の方が入力が早いとかではなく、PC ってなんでもできてしまうので、アドカレ原稿を書く以外の楽しい誘惑に負けてしまうのです。


#### キャプチャ関係


コードやら、実装のやり方は別にまとめたいと思っていますが、取り込みもPythonista3 で完結させています。

[photos — Photo Library Access on iOS — Python 3.6.1 documentation](https://omz-software.com/pythonista/docs/ios/photos.html) を使って写真を取り込み（リサイズして）データを記事のディレクトリに生成するのと同時に、生成したファイルパスをclipboard に格納して記事にリンク先を貼れるようにしています。


https://omz-software.com/pythonista/docs/ios/photos.html


動画は、iPhone 純正のショートカットを使ってGif に書き出してから、写真と同様の処理をしています。


Qiita 上に写真を載せるにはサーバーにあげなければならず、PC 上で上げ直すかたちです。しかし、1ヶ月200MB までの制限があるらしく、後半は（上限を越えたので）GitHub の記事を管理しているリポジトリに、issue として画像をアップしその画像URL を貼っています。


[[Q&A] Qiitaに画像がUpできません - Qiita](https://qiita.com/deo0701/questions/708deab2f7a521d58dcd)


https://qiita.com/deo0701/questions/708deab2f7a521d58dcd


private なリポジトリでも、issue の画像はパブリックのようで、Qiita の記事上には反映されています。


画像取り扱いのワークフローは改善の余地がありそうです。




## 最後に


このアドカレで、Qiita へのアウトプットを始めることができました。


書き始めは、`#` なのか`##` なのかヘッダーすら悩みながらのスタートでしたが、どうにかこうにか終えることができました。Pythonista3 のコミュニティのみなさんのフィードバックや、Qiita 上SNS 上の反応をいただきゴールできました。


妻、息子たちも含め本当にありがとうございます🙇




ちなみに、Pythonista3 インストールの日は、2017/12/21 で4年もやっていたんだなぁと感慨深いです。まだまだ、Metal やファミコンのエミュレータなど書けることはたくさんありそうなので、アウトプットを続けていきたいと思います。



ここまで、読んでいただきありがとうございました。

## せんでん

### Discord

Pythonista3 の日本語コミュニティーがあります。みなさん優しくて、わからないところも親身に教えてくれるのでこの機会に覗いてみてください。

https://t.co/0IOW2hn1VC

### 書籍

iPhone/iPad でプログラミングする最強の本。

- [Python や Jupyter で iPhone/iPad 先端機能を簡単･自由にプログラミング！「活用篇」：hirax](https://techbookfest.org/product/1WiyV4LEev3f4YrzesRKWV?productVariantID=axX32srsSgtLtZWUtjkj99)

https://techbookfest.org/product/1WiyV4LEev3f4YrzesRKWV?productVariantID=axX32srsSgtLtZWUtjkj99

- [Python や Jupyter で iPhone/iPad 先端機能を簡単･自由にプログラミング！「土台篇」：hirax](https://techbookfest.org/product/wTZTyeibm5GQ5XgdfMrEBV?productVariantID=kRDmN1udbEYZUWbETdwL8r)

https://techbookfest.org/product/wTZTyeibm5GQ5XgdfMrEBV?productVariantID=kRDmN1udbEYZUWbETdwL8r

### その他

- サンプルコード

[Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) でのコードをまとめているリポジトリがあります。

コードのエラーや変なところや改善点など。ご指摘やPR お待ちしておりますー

https://github.com/pome-ta/Pythonista3AdventCalendar2022sampleCode

- Twitter

なんしかガチャガチャしていますが、お気兼ねなくお声がけくださいませー

https://twitter.com/pome_ta93

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">やれるか、やれないか。ではなく、やるんだけども、紹介説明することは尽きないと思うけど、締め切り守れるか？って話よ！（クズ）<br><br>Pythonista3 Advent Calendar 2022 <a href="https://t.co/JKUxA525Pt">https://t.co/JKUxA525Pt</a> <a href="https://twitter.com/hashtag/Qiita?src=hash&amp;ref_src=twsrc%5Etfw">#Qiita</a></p>&mdash; pome-ta (@pome_ta93) <a href="https://twitter.com/pome_ta93/status/1588570697777152006?ref_src=twsrc%5Etfw">November 4, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

- GitHub

基本的にGitHub にコードをあげているので、何にハマって何を実装しているのか観測できると思います。

https://github.com/pome-ta