Pythonista Ver.3.2

Pythonista 3がアップデート。更新内容をチェックした時のメモをざっくりとまとめました。

f-stringsをサポート

Python3.5から3.6.1になってf-stringsが使えるようになりました。こんな感じ。

user_name = 'hal'
print(f'hello {user_name}')

ファイル周りのアップデート

今回のアップデートで1番目立つのがファイル管理周り。

  • iCloudのサポート
  • 他アプリのファイルを開ける
  • iOS11のドラッグ&ドロップに対応
  • Open inでPythonファイルをインポート
  • ファイル検索はサブフォルダも対象に
  • ファイル・フォルダのお気に入り登録

iCloudサポートにより、ようやくデフォルトで同期機能が実装されました。一々ファイルを受け渡すことなくシームレスに編集できるのも便利です。

Working Copyからプロジェクトを開いてPythonistaで編集できるのがかなり良い。

コンソールのUI変更

コピーやPythonのバージョン切替がプルダウンメニューから選べるようになりました。

ドキュメントの改善

ドキュメントのあいまい検索に対応。未収録だったモジュールの簡単な説明と公式へのリンクも追加されています。

エディタ周りの変更

ツールメニューのConvert TabsがReformat Codeに名称変更。内容も機能強化されています。タブだけでなくコーディングスタイルを選んで反映できるようになりました。

読み取り専用のファイルはロックアイコンがついてわかりやすくなりました。これまではファイル名を()で囲って区別していた。

コメントがファイル名タップでポップアップするアウトライン表示に追加されると書いてあるけどよくわからない。

insert assetボタンが上部メニューから編集画面右下に変更された。以前あったタブボタンは上部メニューへ移動。

URLスキーム

新たにexecパラメータが追加されました。エンコードしたコードそのものを指定して使います。

pythonista3://?exec=%23!%20python3%0A%23%20coding:%20utf-8%0Aimport%20console%0A%0Aconsole.hud_alert%28%27%E3%83%86%E3%82%B9%E3%83%88%27,%20%27success%27,%202.0%29%0A

怖いなーと思ったら実行前にちゃんと確認画面が表示されるようになっていた。そのままファイル保存できたらいいのに。

このURLはツールメニューのShareから作成する事もできます。

もう一つrootパラメータが追加。iCloudに対応したのでicloud|localを指定して使います。デフォルトはlocal。

ビルトインモジュールの変更

arrow、openpyxlモジュールが追加されました。arrowは日付や時刻関連。openpyxlはExcel操作系。

その他既存モジュールに追加変更あり。詳しくはドキュメントを。

dialogs.pick_documentで他アプリのファイルパスを取得できるようになっています。

editor.open_file(dialogs.pick_document())

あとがき

今回の目玉はファイルアプリ対応。とりわけiCloudの対応ですね。これまでDropbox APIを使って同期やバックアップをしていた人が多かったと思いますが、ようやくデフォルトで同期機能が実装されました。

外部ファイルは履歴が残るので次からは簡単に開いて編集できます。

Safariの共有からコードを実行した時に、appex.get_url等の挙動がおかしい気がしますが、よく調べていないので新年へ持ち越し。公式フォーラムを見るとバグがいくつかあるようなのでその内アップデートがあるのでしょう。

Editorialで簡易File Transclusion

File Transclusionは編集中のファイルに別のファイルの内容を挿入するもの。MultiMarkdownの機能の一つです。

以前Macで使っていたアプリにこの機能が実装されていて便利だったので、ごく簡単なものをEditorial用に作りました。

インストール

Editorial Workflow — Simple File Transclusion

使い方

別ファイルの内容を挿入したい行に以下のようにファイルのパスを記述してワークフローを実行するだけです。相対パスでOK。

{{./path/to/other_file.md}}

この行をファイルの内容と置き換えたテキストが生成されます。シェアシートが開くので後はお好みで。

できないこと

File Transclusionのその他全て。

あとがき

文章を書いてテンプレートに挿入して共有なんて使い方もできそうですね。

しばらく更新のないEditorialですがPython3の対応はいつだろうか。コードエディタの補完機能が上手く動いていないのでそこだけでもどうにかしてほしい。

Pythonista 3でフォトライブラリの読み書き

Pythonista 3photosモジュールに変更があり、いくつかの関数が廃止予定になっています。結構前の話ですが最近気付きました。

具体的にはphotos.pick_image()photos.save_image()等が該当します。当然代替方法はあるので、それらを使ったサンプル、というか練習で書いたものを載せておきます。

#! python3
# -*- coding: utf-8 -*-
# Pythonista 3 sample code
# Get images from Camera Roll.
import photos
'''
アルバム名を取得
for album in photos.get_smart_albums():
print(album.title)
'''
# AssetCollectionリストからカメラロールを取得する
for album in photos.get_smart_albums():
if album.title == 'Camera Roll':
camera_roll = album
break
# カメラロールからAssetsを取得
assets = photos.pick_asset(camera_roll, 'Camera Roll', True)
images = []
# Assetからimageオブジェクトを取得
for asset in assets:
images.append(asset.get_image())
'''
画像を一つだけ取得する
asset = photos.pick_asset(camera_roll)
image = asset.get_image())
'''
for image in images:
image.show()
#! python3
# -*- coding: utf-8 -*-
# Pythonista 3 sample code
# Save images to photo library.
import photos
# カメラロールに保存
photos.create_image_asset('image.jpg')
# アルバムに画像を追加
for album in photos.get_smart_albums():
if album.title == 'Camera Roll':
camera_roll = album
break
for album in photos.get_albums():
if album.title == 'test':
test = album
break
'''
アルバムを作成する
photos.create_album('アルバム名')
'''
assets = photos.pick_asset(camera_roll, 'Camera Roll', True)
# 追加可能ならアルバムに追加
if test.can_add_assets:
test.add_assets(assets)
else:
print('このアルバムは読み取り専用です')

2015年のまとめ

去年から決まっていた案件により、夏の終わりから多忙を極めておりました。ブログにまとめたい事も特に無かったんですが。

早いもので今年も今日で終わり。寒くなってきたなと思ったらもう終わりですよ。何なのこの速さ。この前、紅葉見に行けないな、とか残念がっていたのに。

2015年よく使ったアプリのまとめ

今年ははっきり言って不作でした。もう出尽くした感はありますが。これ凄い!欲しい!というアプリは一つも無かった。

Schemesは開発終了によりiPhone版も当然無くなりました。楽しみにしていたUlyssesのiPhone対応(ユニバーサル版)もリリース延期でがっかりです。Pythonistaの更新も無し。

Editorial Ver.1.2.1
カテゴリ: 仕事効率化
現在の価格: 1200円(サイズ: 57.4MB)

Python実行開発環境を搭載したメモアプリ。やはりこれ。これが無いとやってられない。詳しくはこのブログをEditorialで検索してください。

Ohajiki Webブラウザ – ランチャーモード搭載 Ver.2.2.0
カテゴリ: ヘルスケア/フィットネス, ユーティリティ
現在の価格: 720円(サイズ: 11.8MB)

ブラウザアプリ。検索アプリモードにより、MyFindみたいな検索アプリとしても使えます。今年購入したアプリで継続して使用しているのはこれだけです。

Fantastical 2 for iPhone – カレンダーとリマインダー Ver.2.5.3
カテゴリ: 仕事効率化, ビジネス
現在の価格: 400円(サイズ: 22.6MB)

カレンダーアプリ。もはや定番。日本語での自然言語入力にも対応しました。

Sylfeed Ver.3.4.4
カテゴリ: ニュース, ソーシャルネットワーキング
現在の価格: 240円(サイズ: 8.9MB)

フィードリーダー。しばらくReederを使っていましたが、最新版がどうも合わないので、また使い始めました。やっぱり使いやすい。

以上です。TwitterはTweetbot 3をまだ使っています。4はどうしようかなと。フルに機能を使いたいなら公式アプリしか選択肢がないのが現状なんですよね。

ブログまとめ

今年のブログ更新件数はこの記事を含め40件でした。下半期はほぼ放置状態。やった事といえばEditorial関連と、注目しているアプリの更新情報をまとめたぐらいです。10月以降はそれもサボりましたが。

Editorial関連は相変わらず拙いコードを書いていますが、iOS+Pythonでやりたい事が出来るようになって楽しくなってきました。

新年はもっと色んな事をやりたい。

サッカーまとめ

今年もたくさんの試合を見ました。一番は女子サッカー。ワールドカップカナダ大会は準優勝でした。決勝戦はアメリカにしてやられました。日本を研究し尽くしたセットプレー。そして何よりあの逆光。なぜ反対側のピッチを選ばなかったのか。まあ考えても仕方ないんですが。

書いていたら長文になったのでばっさりカットしますが、一番感動したのは、決勝戦の散々なスタートからの修正です。壊れてしまった試合をあれほど見事に修正できる監督が世界に何人いるのか。本当に素晴らしかった。

グループリーグの選手起用に至っては史上初なんじゃないだろうか。3試合でGK含め全選手を起用して全勝で通過。まあ内容はイマイチでしたが。

正直に言うと、今大会はあまり期待していませんでした。前回大会からそれ程の上積みがあるとは思えなかった。宮間選手をボランチに置いて裏抜けを狙う戦術が好きじゃなかったのもあります。結局は決勝の連続失点以降上手くやれたのはこの戦術のおかげなんですが。カナダ大会は佐々木監督の手腕に驚かされるばかりでした。

女子サッカーといえば、覚悟はしていましたが、澤穂希選手が引退を発表しました。今年の皇后杯をもって現役を引退すると。

とうとうこの時が来てしまった。五輪まで続けるイメージがどうしても持てなかった。結婚を発表した時に、やっぱり引退するするのかな、と半ば確信してました。

澤選手といえばアトランタ世代ですよ。まだ十代の頃、ニュース番組か何かで澤選手の特集を見て知りました。何となく記憶には残っていたものの、再び名前を聞いたのはそれから10年以上経ってからです。それでもほとんど試合は見られませんでしたが。

スウェーデンが強い時代とかありましたよね。ジェノアの会長がウチに欲しいとか褒めていたのを覚えています。にわか知識。

皇后杯、神戸は決勝まで勝ち進み、相手は上尾野辺めぐみのいる新潟。結果は神戸がCKから澤選手のヘディングで決勝点を決めて1-0で優勝しました。出来すぎです。神戸は試合内容でいえば準決勝の仙台戦後半がベストでしょうが、何だかもう決勝のあのゴールが全てを持って行ってしまいました。

出来すぎなのはドイツ大会で経験したので、澤選手らしいラストマッチともいえます。ドイツ大会はキャプテンとして臨んで優勝。この時も延長後半で追いついたゴールは澤選手。更には得点王とMVPも獲得。そのシーズンの世界最優秀選手になり国民栄誉賞まで受賞しました。ご都合主義な漫画にでもここまではやらない。

ドイツ大会決勝は素晴らしいヒールボレーばかり取り上げられますが、俺は延長後半のラストプレーで、タッチを割ろうとしていたボールを最後まで追う姿に感動しました。そんな事をTwitterでも書いた覚えがあります。

今季のリーグを見てきて、澤選手がまだやれるのは間違いないんですよ。全盛期のパフォーマンスはもう望めませんが、あの読みと展開力をもってすれば40歳まで続けられるんじゃないかと思える程です。

澤選手のプレー見るのは楽しかった。本当にお疲れ様でした。

今年も一年ありがとうございました

早いもので明日から2016年です。平成28年ですよ。そりゃ歳も取るってもんですよ。ちなみに来年は申年です。

来年はどんなアプリが出てくるのか。出尽くした感のある中でブレイクスルーが生まれるのか。楽しみにしています。

今年も一年ありがとうございました。新年もよろしくお願いします。

Drafts Ver.4.5.5 – 拡張キーからアクション実行

Draftsがアップデート。拡張キーボードからアクションを実行できる等、いくつかの機能追加・修正があります。

Drafts 4 – Quickly Capture Notes, Share Anywhere!

バージョン: 4.5.5
カテゴリ: 仕事効率化, ソーシャルネットワーキング
現在の価格: 1200円(サイズ: 12.3MB)
販売元: Agile Tortoise
リリース日: 2014/10/15

iTunesで見る + iPhone/iPadの両方に対応

引用元:App Store -Drafts 4 – Quickly Capture Notes, Share Anywhere!

バージョン 4.5.5 の新機能
#### Visit our blog for more detailed release notes: agiletortoise.com/blog

– [New] Apple Watch Complications! Keep up with your inbox from your watch face.
– [New] Apple Watch Glance with quick access to inbox information.
– [New] Keyboard command key types for toggling the visibility of the drafts and/or actions list and creating a new draft. Great for use in combination with external keyboard shortcuts.
– [Fix] Current cursor position could be lost if Drafts was sent to background.
– [Fix] Backup settings would not properly report error if Dropbox was not linked.
– [Change] Restore Google+ posting, which was temporarily disabled while working around upload issues.

Help & Support: info@agiletortoise.com
News and Tips: @draftsapp on Facebook and Twitter

Review and ratings are always appreciated!

拡張キーボードからアクション実行

拡張キーボード右端の鉛筆アイコン→+→Run Actionからアクションを追加。キートップのラベル名と、実行するアクション名。Voice Overは読み上げ用。キーボードショートカットは外部キーボード用です。

これで1タップでアクションを実行できるようになります。

拡張キーボードの追加コマンド

  • 新規ドラフト作成
  • ドラフト一覧を開く
  • アクション一覧を開く

が追加されました。これによりDrafts 3のような使い勝手に、なるのかわかりませんが。4でメニューを上部にまとめたのは何だったのかと思わなくもない。

その他

Apple Watch関連と不具合修正がされています。詳しくは公式サイトをどうぞ。

あとがき

拡張キーボードからアクション実行はリリース当初から欲しかった機能です。

Draftsはアクションと拡張キーそれぞれで使える関数が違うという仕様なので、まとめて一箇所で使えるようになったのは便利ですね。

例えば拡張キーでテンプレートを貼り付けて、本文を書いた後Evernoteに保存する。なんて事が画面遷移無くできるようになりました。カスタマイズ次第でEvernoteクラアイントにもなりますね。

アップデートを重ねるごとにごちゃごちゃしてきた感はありますが、シンプルにも複雑にも使えるのは相変わらずです。