うどん戦争

体は麺で出来ている。血潮は出汁で、心は醤油。

ChatGPTのCode Interpreter環境のメモ

Code Interpreter 実行環境

  • プラットフォーム:OpenAIのJupyter Notebook環境
  • Pythonのバージョン:3.8.10
  • OS:詳細不明(LinuxベースのOSと推測)
  • 仮想環境:公開情報なし
  • Jupyter Notebook環境:公開情報なし
  • CPU:詳細不明
  • メモリ:詳細不明
  • ストレージ容量:詳細不明

その他:

  • この環境は、Pythonの実行と一部のPythonライブラリ(NumPy、Pandas、Matplotlibなど)の使用をサポートしています。
  • この環境はインターネット接続が無効化されており、外部のAPIやデータベースへのアクセスは不可能です。
  • 新たなPythonライブラリのインストールやシェルコマンドの実行は制限されています。

インストール済みパッケージの一覧

  • これらのバージョンは、環境や時間により異なる可能性があります。
Package Version
zopfli 0.2.2
zipp 3.15.0
yarl 1.9.2
xml-python 0.4.3
XlsxWriter 3.1.2
xlrd 1.2.0
xgboost 1.4.2
xarray 2023.1.0
xarray-einstats 0.5.1
wsproto 1.2.0
wrapt 1.15.0
wordcloud 1.8.1
Werkzeug 2.3.6
websockets 10.3
websocket-client 1.6.1
webencodings 0.5.1
weasyprint 53.3
wcwidth 0.2.6
watchfiles 0.19.0
wasabi 0.10.1
Wand 0.6.11
uvloop 0.17.0
uvicorn 0.22.0
ujson 5.8.0
tzlocal 5.0.1
typing-extensions 4.5.0
typer 0.4.2
trimesh 3.9.29
traitlets 5.9.0
tqdm 4.64.0
tornado 6.3.2
torchvision 0.11.1
torchtext 0.6.0
torchaudio 0.10.0
torch 1.10.0
toolz 0.12.0
tomli 2.0.1
toml 0.10.2
tinycss2 1.2.1
tifffile 2023.7.4
threadpoolctl 3.1.0
thinc 8.0.17
Theano-PyMC 1.1.2
textract 1.6.4
textblob 0.15.3
text-unidecode 1.3
terminado 0.17.1
tenacity 8.2.2
tabulate 0.8.9
tabula 1.0.5
tables 3.6.1
sympy 1.8
svgwrite 1.4.1
svglib 1.1.0
statsmodels 0.12.2
starlette 0.25.0
stack-data 0.6.2
srsly 2.4.6
SpeechRecognition 3.8.1
spacy 3.1.7
spacy-legacy 3.0.12
soupsieve 2.4.1
SoundFile 0.10.2
sortedcontainers 2.4.0
snuggs 1.4.7
sniffio 1.3.0
smart-open 6.3.0
slicer 0.0.7
Shapely 1.7.1
shap 0.39.0
sentencepiece 0.1.99
Send2Trash 1.8.2
semver 3.0.1
seaborn 0.11.2
scipy 1.7.3
scikit-learn 1.0
scikit-image 0.18.3
rpds-py 0.8.8
resampy 0.4.2
requests 2.31.0
reportlab 3.6.1
regex 2023.6.3
referencing 0.29.1
rdflib 6.0.0
rasterio 1.2.10
rarfile 4.0
qrcode 7.3
pyzmq 25.1.0
pyzbar 0.1.8
PyYAML 6.0
pyxlsb 1.0.8
PyWavelets 1.4.1
pytz 2023.3
pyttsx3 2.90
python-pptx 0.6.21
python-multipart 0.0.6
python-dotenv 1.0.0
python-docx 0.8.11
python-dateutil 2.8.2
pyth3 0.7
pytest 6.2.5
pytesseract 0.3.8
pyswisseph 2.10.3.2
pyshp 2.1.3
pyprover 0.5.6
pyproj 3.5.0
pyphen 0.14.0
PyPDF2 1.28.6
pyparsing 3.1.0
pypandoc 1.6.3
PyNaCl 1.5.0
PyMuPDF 1.19.6
pymc3 3.11.5
pyluach 2.2.0
pylog 1.1
pygraphviz 1.7
Pygments 2.15.1
pydyf 0.7.0
pydub 0.25.1
pydot 1.4.2
pydantic 1.8.2
pycryptodome 3.18.0
pycparser 2.21
pycountry 20.7.3
py 1.11.0
pure-eval 0.2.2
ptyprocess 0.7.0
psutil 5.9.5
pronouncing 0.2.0
prompt-toolkit 3.0.39
prometheus-client 0.17.0
proglog 0.1.10
priority 2.0.0
preshed 3.0.8
pooch 1.7.0
pluggy 1.2.0
plotnine 0.10.1
plotly 5.3.0
platformdirs 3.8.0
pkgutil-resolve-name 1.3.10
Pillow 8.3.2
pickleshare 0.7.5
pexpect 4.8.0
pdfrw 0.4
pdfplumber 0.5.28
pdfminer.six 20200517
pdfkit 0.6.1
pdf2image 1.16.3
patsy 0.5.3
pathy 0.10.2
parso 0.8.3
paramiko 3.2.0
pandocfilters 1.5.0
pandas 1.3.2
packaging 23.1
orjson 3.9.1
opt-einsum 3.3.0
openpyxl 3.0.10
opencv-python 4.5.2.54
olefile 0.46
odfpy 1.4.1
numpy 1.21.2
numpy-financial 1.0.0
numexpr 2.8.4
numba 0.57.1
notebook 6.5.1
notebook-shim 0.2.3
nltk 3.6.3
networkx 2.6.3
nest-asyncio 1.5.6
nbformat 5.9.0
nbconvert 7.6.0
nbclient 0.8.0
nbclassic 1.0.0
nashpy 0.0.35
mutagen 1.45.1
murmurhash 1.0.9
munch 4.0.0
multidict 6.0.4
mtcnn 0.1.1
mpmath 1.3.0
moviepy 1.0.3
monotonic 1.6
mne 0.23.4
mizani 0.9.2
mistune 3.0.1
matplotlib 3.4.3
matplotlib-venn 0.11.6
matplotlib-inline 0.1.6
MarkupSafe 2.1.3
markdownify 0.9.3
markdown2 2.4.9
lxml 4.9.3
loguru 0.5.3
llvmlite 0.40.1
librosa 0.8.1
korean-lunar-calendar 0.3.1
kiwisolver 1.4.4
kerykeion 2.1.16
keras 2.6.0
jupyterlab 3.4.8
jupyterlab-server 2.19.0
jupyterlab-pygments 0.2.2
jupyter-server 1.23.5
jupyter-core 5.1.3
jupyter-client 7.4.9
jsonschema 4.18.0
jsonschema-specifications 2023.6.1
jsonpickle 3.0.1
json5 0.9.14
joblib 1.3.1
Jinja2 3.1.2
jedi 0.18.2
jax 0.2.28
itsdangerous 2.1.2
isodate 0.6.1
ipython 8.12.2
ipython-genutils 0.2.0
ipykernel 6.24.0
iniconfig 2.0.0
importlib-resources 5.12.0
importlib-metadata 6.7.0
imgkit 1.2.2
IMAPClient 2.1.0
imageio 2.31.1
imageio-ffmpeg 0.4.8
hyperframe 6.0.1
hypercorn 0.14.3
httpx 0.24.1
httptools 0.6.0
httpcore 0.17.3
html5lib 1.1
hpack 4.0.0
h11 0.14.0
h5py 3.4.0
h5netcdf 1.1.0
h2 4.1.0
gTTS 2.2.3
graphviz 0.17
gradio 2.2.15
geopy 2.2.0
geopandas 0.10.2
geographiclib 1.52
gensim 4.1.0
fuzzywuzzy 0.18.0
future 0.18.3
frozenlist 1.3.3
fpdf 1.7.2
fonttools 4.40.0
folium 0.12.1
Flask 2.3.2
Flask-Login 0.6.2
Flask-Cors 4.0.0
Flask-CacheBuster 1.0.0
Fiona 1.8.20
filelock 3.12.2
ffmpy 0.3.0
ffmpeg-python 0.2.0
fastprogress 1.0.3
fastjsonschema 2.17.1
fastapi 0.92.0
Faker 8.13.2
extract-msg 0.28.7
executing 1.2.0
exchange-calendars 3.4
exceptiongroup 1.1.2
et-xmlfile 1.1.0
entrypoints 0.4
email-validator 2.0.0.post2
einops 0.3.2
EbookLib 0.18
ebcdic 1.1.1
docx2txt 0.8
dnspython 2.3.0
dlib 19.22.1
dill 0.3.6
deprecat 2.1.1
defusedxml 0.7.1
decorator 4.4.2
debugpy 1.6.7
cymem 2.0.7
cycler 0.11.0
cssselect2 0.7.0
cryptography 3.4.8
countryinfo 0.1.2
compressed-rtf 1.0.6
comm 0.1.3
cmudict 1.0.13
cloudpickle 2.2.1
cligj 0.7.2
click 8.1.4
click-plugins 1.1.1
charset-normalizer 2.1.1
chardet 4.0.0
cffi 1.15.1
catalogue 2.0.8
camelot-py 0.10.1
CairoSVG 2.5.2
cairocffi 1.6.0
cachetools 5.3.1
Brotli 1.0.9
branca 0.6.0
bokeh 2.4.0
blis 0.7.9
blinker 1.6.2
bleach 6.0.0
beautifulsoup4 4.12.2
bcrypt 4.0.1
basemap 1.3.2
basemap-data 1.3.2
backports.zoneinfo 0.2.1
backoff 1.10.0
backcall 0.2.0
Babel 2.12.1
audioread 3.0.0
attrs 23.1.0
async-timeout 4.0.2
asttokens 2.2.1
arviz 0.15.1
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
argcomplete 1.10.3
anytree 2.8.0
anyio 3.7.1
analytics-python 1.4.post1
aiosignal 1.3.1
aiohttp 3.8.1
affine 2.4.0
absl-py 1.4.0
wheel 0.34.2
urllib3 1.25.8
unattended-upgrades 0.1
six 1.14.0
setuptools 45.2.0
requests-unixsocket 0.2.0
python-apt 2.0.1+ubuntu0.20.4.1
PyGObject 3.36.0
PyAudio 0.2.11
pip 20.0.2
idna 2.8
distro-info 0.23ubuntu1
dbus-python 1.2.16
certifi 2019.11.28

インストール済みフォントの一覧

Font
C059
D050000L
DejaVu Sans
DejaVu Sans Display
DejaVu Sans Mono
DejaVu Serif
DejaVu Serif Display
Droid Sans Fallback
Liberation Mono
Liberation Sans
Liberation Sans Narrow
Liberation Serif
Nimbus Mono PS
Nimbus Roman
Nimbus Sans
Nimbus Sans Narrow
Noto Mono
P052
STIXGeneral
STIXNonUnicode
STIXSizeFiveSym
STIXSizeFourSym
STIXSizeOneSym
STIXSizeThreeSym
STIXSizeTwoSym
Standard Symbols PS
URW Bookman
URW Gothic
Z003
cmb10
cmex10
cmmi10
cmr10
cmss10
cmsy10
cmtt10

Amazon Prime Readingで読める技術書 (2023-02)

Amazon の Prime Reading でただで読めるIT系の技術書。

自分が後で読む用のメモです。


はじめてのデータベース設計: 概念設計 E-R図作成編

ER図の書き方。ページ数が少ないからサッと読めそう。

  • 発売日: 2021/9/2
  • 61ページ
  • ★3.8 (74)

やさしく学ぶ データ分析に必要な統計の教科書 できるビジネスシリーズ

Excelでデータ分析の本っぽい。

  • 発売日: 2018/6/22
  • 256ページ
  • ★3.8 (151)

Linuxで動かしながら学ぶTCP/IPネットワーク入門

VirtualBox上のUbuntu 20.04でNetwork Namespaceで仮想のネットワークを作っていく内容みたい。まとまった時間がある時に手を動かして読む感じ。

  • 発売日: 2020/2/29
  • 349ページ
  • ★4.3 (165)

はじめて学ぶバイナリ解析 不正なコードからコンピュータを守るサイバーセキュリティ技術

C言語GDBバッファオーバーフロー攻撃の仕組みを調べる内容っぽい。

  • 発売日: 2020/2/21
  • 293ページ
  • ★4.1 (122)

JavaScript 初級者が知るべき39のこと

Reactの文法ややこしくて分からんって人向けの内容っぽい。

  • 発売日: 2020/6/22
  • 本の長さ : 91ページ
  • ★3.9 (89)

ちゃんと知っておきたい人のHTML/CSS完全入門: HTML習得の最短講座!1日30分で楽しく学ぼう!

11章以降の「架空の皮膚科のウェブ予約システム」~「開発者ツールの使い方」あたり軽く読みたい。

  • 発売日: ‏ 2020/10/8
  • 本の長さ : 184ページ
  • ★4.1 (75)

ゲームを作りながら楽しく学べるPythonプログラミング

Python3 + PyGameの本っぽい。2017年はちょっと古いか。

  • 発売日: 2017/3/24
  • 290ページ
  • ★3.9 (153)

Spring Boot 2 入門: 基礎から実演まで

Spring Boot は JavaのWebアプリ用フレームワークらしい。

  • 発売日: 2020/5/22
  • 428ページ
  • ★4.3 (78)

Unity 2019.4 で AndroidのターゲットAPIレベルを30にしてビルドする

普通にUnityのPlayer SettingsでAndroidAPIレベルを30にしてビルドするとなんかエラーが出たので、以下を実行した。

(1) 管理者権限で PowerShellを開く

(2) 環境変数JDK_HOMEをUnityのJDKパスに設定

> $env:JDK_HOME = "C:/Program Files/Unity/Hub/Editor/2019.4.30f1/Editor/Data/PlaybackEngines/AndroidPlayer\OpenJDK"

JDKパスは、Unityエディタの「Edit」メニュー→「Preferences」→「External Tools」を開いて、「JDK Installed with Unity (recomended)」をコピー

(3) カレントディレクトリを Android SDK の tools/bin フォルダに移動

cd C:/Program Files/Unity/Hub/Editor/2019.4.28f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK
cd tools/bin

SDKパスは、Unityエディタの「Edit」メニュー→「Preferences」→「External Tools」の「Android SDK Tools Installed with Unity (recommended)」をコピー

(4) SDK Managerで更新

API level 30対応ツールをインストール

.\sdkmanager.bat "build-tools;30.0.3"
.\sdkmanager.bat "platforms;android-30"

以上を実行したあと、もう一度ビルドを試すと成功した。

Windowsでインストーラーを作る(下調べ)

Windows上で使えるインストーラーファイルには、大きく分けて以下の3種類ある。

  • EXEファイル
  • MSIファイル
  • MSIXファイル

(1) EXEファイルのインストーラ

昔ながらのEXEファイルのインストーラー。よく使われている作成方法は、

NSISを使って作る

公式サイト

OSSや商用で広く使われている。一番メジャーっぽい。スクリプトにかなりクセがあって使うのが面倒くさい (関数呼び出し時は引数をPUSH/POP命令で渡すなど)。

スクリプトプラグインを使えばかなり複雑なことができる。例えば、最初はユーザー権限で起動しておいて、インストール先に応じて管理者権限に昇格したりなど。

Inno Setupを使って作る

公式サイト

VSCodeインストーラー作成に使われている。NSISに比べるとスクリプトにクセがなく使いやすそう。

ちなみにVSCodeの自動アップデートは inno-updater というツールで行っているっぽい。VSCode以外の自動アップデートにも利用できるかどうか不明。

Install Shieldを使って作る

有料。昔はよく使われていた。今はマイナーっぽい?

Qt Installer Framework (Qt IFW)を使って作る

Qt SDKインストーラー作成に使われているインストーラーツール。Qtで作ったプログラム以外でも使えるっぽい?自動アップデートに対応している。

イチから自分で作る

インストーラーのプログラムを自社で書いて作ったら、HDDの中身を消しちゃうバグを混入させて騒ぎになったゲームがあったらしい (https://castaneai.hatenablog.com/entry/mizuiro-uninstaller)。使いにくくても既存のインストーラー作成ツールを使った方が良さそう。

自動アップデートや修正パッチインストーラーみたいな特殊なものを作る場合は、自分で作っている所が多いっぽい?でもアップデート処理にバグがあってHDDの中身を消しちゃうゲームもあったらしい (https://www.4gamer.net/games/120/G012075/20130906098/)。

(2) MSIファイル

広く使われているMSIファイルのインストーラー。Windows 2000の頃から使われている。拡張子には .msi (インストーラー)と .msp (修正パッチインストーラー) がある。

資料: The Definitive Guide to Windows Installer (洋書 / 米Amazon)

WiX Toolkitを使って作る

公式サイト

インストーラー作成のためのCLIツール群。インストーラーの設定は拡張子 ".wxs" のXMLファイルで記述する。WiX Toolkitをインストールしたら、インストール先の bin フォルダ (%WIX%\bin) に自分でパスを通して使う。

このサイトがすごく詳しい (http://www.02.246.ne.jp/~torutk/windows/wixandwixedit.html)。

WinEditを使って作る

公式サイト

WiX Toolkit用のXMLを作成するためのGUIツール。事前にWiX Toolkitをインストールしてから使う。

(3) MSIXファイル

公式サイト

Windows 10 バージョン1709以降でサポートされた新しいインストーラーファイル形式。UWPアプリ/ネイティブアプリどちらのインストールも可能。アプリはユーザーがアクセスできない特殊フォルダ %ProgramFiles%/WindowsApps/ の下にインストールされる。

インストーラー作成時にコードサイニング証明書が必要だが、証明書は通常は法人でないと発行できないのと、取得・維持に年間数万の費用が必要になる (通常は企業の部門ごとに証明書を1つ用意しておき、その部門で作成するアプリは全て同じ証明書で署名する)。個人やOSS、小規模なビジネスの場合は通常は自己署名で作成することになり、インストール時にSmartScreenで警告が表示される(ある程度ダウンロード数が増えると消えるらしい)。有名な無料SSL認証局Let's Encryptはコードサイニング証明書には対応しない(参照: Let's Encrypt - Do you support Code Signing)。

一応Windows 7~8.1でも、MSIXファイルを実行するための MSIX Coreというアプリをインストールすれば使うことができるらしい。でもインストール方法をユーザーに説明するのが面倒くさい。

MSIX Packaging Toolを使って作る

MSIXファイルを作るためのツール (https://docs.microsoft.com/ja-jp/windows/msix/packaging-tool/create-app-package)。

Visual Studio 2019で作る

Visual Studio 2019でアプリのビルド時にMSIXパッケージを作成することもできる (https://docs.microsoft.com/ja-jp/windows/msix/package/packaging-uwp-apps)。

参考動画: How to create an MSIX package with Visual Studio - YouTube

モバイルGPUでのゲーム開発について

モバイルGPUでのゲーム開発について参考になりそうな記事のリンクを集めて、要旨をまとめた。


2019年に iOSAndroid のテクスチャを扱うこと (2019-7)

iOSでATSCテクスチャを、AndroidでETC2テクスチャを使うことについての考察。

元記事リンク (英語):

gametorrahod.com

記事の要旨:

  • UnityのiOS用テクスチャは古いiOSで使えるPCRTCがデフォルトだがブロックノイズが目立つ。ATSCが品質面で大きく優れている。Android用テクスチャはETC1がデフォルトだが、ETC1はアルファが使えないためUnityのSplit Alpha機能を使ってアルファチャンネル用画像を別に作成する必要がある(もしくは無圧縮RGBAにするか)。品質とサイズの両面でETC2が大きく優れている。
  • iOSではiPhone 6 (2014)以降でATSCが使える。ATSCを使おう。だがいずれにしても、解像度の違うiPad ProとiPhone SEで同じサイズのテクスチャを使うという問題はある。それを解決するためにオンデマンドやアプリ分割で端末ごとに違うテクスチャを配信したい場合は、Unity自体では対応できないだろうから、ポストビルドの段階での手作業になるだろう。
  • Androidでは、GLES 3.0対応端末がETC2に対応している。Googleの統計ページによれば2019年5月の段階で78.9%がGLES 3.0に対応している。残りの21.1%はETC2をメモリ上に無圧縮展開して使うだろう。21.1%のうちどの程度がゲーマーだろう?それは分からないが、誰かがアプリのレビューで文句を言わない限り、私はETC2を使っていくと思う。(※端末ごとの配信やAABの話題は長くなるので割愛)

記事のコメント:

  • それから1年後 (2020年5月)、GLES 3.0非対応端末は21.1%→14.5%に減った。(訳注: 2021-02のGoogleの統計では12.28%に減っています)

さまざまな端末での4096x4096テクスチャ対応 (2017-9)

4k(4096x4096)テクスチャを使うべきか、2k(2048x2048)テクスチャを使うべきかについての考察。

元記事リンク (英語):

forum.defold.com

記事の要旨:

  • (私見だが)ほとんどの現代の端末は4096x4096テクスチャに対応している。よほど古い端末をサポートするのでなければ4kテクスチャを使って良い。

記事のコメント:

  • 4kテクスチャは4倍のメモリを使うので、今でもハイエンド端末で2kテクスチャを選ぶケースはある。
  • 2014年に、SteamのPCゲームで4kテクスチャが動かないユーザーがいて2kテクスチャに差し替えたケースがあった。

モバイルの最大テクスチャサイズ (2013-10)

Unityフォーラムの2013年当時のやり取り。モバイル向けゲームで4096x4096のテクスチャを使えるかどうか。

元記事リンク (英語):

answers.unity.com

回答:

  • 2013-10 ベストアンサー: 対象のプラットフォームによるが、最大2048x2048の端末のサポートをもう少し続けていくことを勧める。メモリ容量の問題もある。
  • 2017-8: 現在では状況は変わったのだろうか?様々な矛盾した回答を見てきた。Androidの99%が4096に対応しているという話も見たが、1年前の回答だったしどうも真実ではないと思う。GLES 3.0以上であれば 4096が使えると思って良さそうだが、2017-8現在のGoogleの統計ではまだAndroidの28%がGLES 2.0を使っている。(訳注: 2021-02のGoogleの統計では12.28%に減っています)

スマホ機種ごとのスペック詳細リスト

ものすごく詳しい。かなりの数の機種の SoC, RAM, CPU, GPU, 解像度, OpenGLESバージョンなどが一覧できる。

元記事リンク (日本語):

dench.flatlib.jp


フォートナイトとスマホGPU (2019-8)

フォートナイトにおけるGPU対応と端末シェアについての考察。

元記事リンク (英語):

www.scientiamobile.com

記事の要旨:

  • 2015年の段階ではGPUを持たないスマホが8.25%あったが、2019年までには99%以上のスマホGPUが搭載された。
  • フォートナイト iOS版は、iOS 12.0/iPhone 6以上で、iOS端末全体の84.28%が要求を満たしている。一方 Android版は、Android 8.0/メモリ3GB/Adreno 530かMali-G71以上で、Android端末の19.34%しか要求を満たさない。
  • フォートナイトの要求を満たすスマホの85%は、$800以上の価格帯にある。

モバイルの SoC / GPU メモ

モバイル向けARMアーキテクチャについて調べると知らない単語がすごく多かったので、SoCとGPUのシリーズ名などを整理してみた。

ARMアーキテクチャのターゲットOS

ARM上で動作するOSは下記のように多岐に渡るが、たいていの場合ターゲットはAndroidiOSである。それ以外のOSが動くかどうかはSoCによる。

SoC

SoC シリーズ メーカー
Snapdragon (スナップドラゴン) Qualcomm (クアルコム)
Helio (ヘリオ) MediaTek (メディアテック)
Dimensity (ディメンシティ) MediaTek (メディアテック)
Apple A11 ~ A14 Apple
Apple M1 Apple
Exynos (イクシノス) Samsung (サムスン)
Kirin (キリン) HUAWEI (ファーウェイ)
UNISOC SC UNISOC (ユニ・エスオーシー)
Rockchip RKシリーズ Rockchip Electronics (ロックチップ・エレクトロニクス)
Tegra (テグラ) NVIDIA (エヌビディア)
Amlogic Sシリーズ Amlogic (アムロジック)
Allwinner Aシリーズ / Hシリーズ Allwinner Technology (オールウィナー・テクノロジー)
BROADCOM BCMシリーズ BROADCOM (ブロードコム)
i.MX (アイドットエムエックス) NXP Semiconductors (エヌエクスピー・セミコンダクターズ)
OMAP (オーマップ) Texas Instruments (テキサス・インスツルメンツ)

Snapdragon (スナップドラゴン)

クアルコムのSoC。採用例が非常に多い。

SoCメーカー Qualcomm (クアルコム)
GPU Adreno

採用機種 (スマホ/タブレット):

メーカー 機種 SoC OS 発売
Xiaomi Mi 10 Snapdragon 865 MIUI11 (Android 10カスタム) 2020
Google Pixel 4a Snapdragon 730G Android 10 2020
Samsung Galaxy S10 (USA/China) Snapdragon 855 Android 9 2019
Sony Xperia 10 II Snapdragon 665 Android 10 2020
Sharp AQUOS sense4 Snapdragon 720G Android 10 2020
Asus ZenFone 7 Snapdragon 865 Android 10 2020
Motorola moto g8 power Snapdragon 665 Android 10 2020
富士通 arrows 5G F-51A Snapdragon 865 Android 10 2020
京セラ TORQUE G04 Snapdragon 660 Android 9 2019

採用機種 (ヘッドセット):

メーカー 機種 SoC OS 発売
Oculus Oculus Quest 2 Snapdragon XR2 Android 10カスタム 2020
Microsoft HoloLens 2 Snapdragon 850 Windows Holographic 2020

採用機種 (PC):

メーカー 機種 SoC OS 発売
Microsoft Surface Pro X Microsoft SQ1 (Snapdragon 8cxカスタム) Windows 10 2020
Lenovo Yoga C630 Snapdragon 850 Windows 10 2019

Helio (ヘリオ) / Dimensity (ディメンシティ)

台湾MediaTekのSoC。Helioは4G世代、Dimensityは5G世代のSoCに付けられるブランド名。メインストリーム以外にはブランド名が付かずMTで始まる型番名で呼ばれるようだ。

メーカー MediaTek (メディアテック)
GPU Mali
PowerVR

採用機種 (スマホ/タブレット):

メーカー 機種 SoC OS 発売
Xiaomi Redmi Note 9 Helio G85 MIUI 11 (Android 10カスタム) 2020
Oppo Reno3 Dimensity 1000L Android 10 2020
Samsung Galaxy A41 Helio P65 Android 10 2020
Sony Xperia L4 Helio P22 Android 9 2020
Motorola moto g8 power lite Helio P35 Android 9 2020
Amazon Fire HD 8 MT8168 Fire OS 7 (Android 9カスタム) 2020

採用機種 (セットトップボックス):

メーカー 機種 SoC OS 発売
Amazon Fire TV Stick MT8695D Fire OS 7 (Android 9カスタム) 2020

採用機種 (PC):

メーカー 機種 SoC OS 発売
Lenovo Chromebook S330 MT8173C Chrome OS 2019

Apple A11 ~ A14

Appleのモバイル用途向けSoC。iPhoneiPadで使われる。

メーカー Apple
GPU Apple A11~A14 GPU

Apple M1

AppleのPC用途向けSoC。Macで使われる。

メーカー Apple
GPU Apple M1 GPU

Exynos (イクシノス)

韓国サムスンのSoC。サムスンは製品によってSoCを使い分けていて、他社のSoCであるSnapdragonやHelioを採用することも多い。

メーカー Samsung (サムスン)
GPU Mali

Kirin (キリン)

中国ファーウェイ傘下ハイシリコンのSoC。ファーウェイ製品に使われていたが、米中対立のため政治的に厳しい状況となり、2020年9月に生産中止となった。

メーカー HiSilicon (ハイシリコン)
GPU Mali
VeriSilicon GC

UNISOC (ユニ・エスオーシー) SCシリーズ

中国UNISOCのSoC。比較的安価なスマホタブレットに使われるようだ。

メーカー UNISOC (ユニ・エスオーシー)
GPU PowerVR
Mali

Rockchip (ロックチップ) RKシリーズ

中国RockchipのSoC。Chromebookタブレットなどに使われるようだ。

メーカー Rockchip Electronics (ロックチップ・エレクトロニクス)
GPU Mali
PowerVR

Tegra (テグラ)

NVIDIAのSoC。2015年にスマホ市場から撤退した。
その後もNintendo SwitchNvidia Shield TV などで採用されている。

メーカー NVIDIA (エヌビディア)
GPU Tegra

Amlogic (アムロジック) Sシリーズ

アムロジックのSoC。主にセットトップボックスに使われるようだ。

メーカー Amlogic (アムロジック)
GPU Mali
  • 採用例:

Allwinner (オールウィナー) Aシリーズ / Hシリーズなど

中国AllwinnerのSoC。主にセットトップボックスや開発ボードに使われるようだ。

メーカー Allwinner Technology (オールウィナー・テクノロジー)
GPU Mali
PowerVR

BROADCOM (ブロードコム) BCMシリーズ

ブロードコムのSoC。ラズベリーパイの他、ネットワーク製品などに使われるようだ。

メーカー BROADCOM (ブロードコム)
GPU VideoCore

i.MX (アイドットエムエックス)

オランダのNXPのSoC。主に自動車や産業機器に使われるようだ。
もともとは米Freescale(フリースケール)が開発していたが、2015年にNXPに合併された。そのため、Freescale i.MXと呼ばれることがある。

メーカー NXP Semiconductors (エヌエクスピー・セミコンダクターズ)
GPU VeriSilicon GC

OMAP (オーマップ)

テキサス・インスツルメンツのSoC。2012年にスマホ市場から撤退し、2013年のOMAP5を最後にシリーズが終了した。

メーカー Texas Instruments (テキサス・インスツルメンツ)
GPU PowerVR

GPU

GPU シリーズ メーカー
Mali (マリ) ARM(アーム)
Adreno (アドレノ) Qualcomm (クアルコム)
PowerVR (パワーブイアール) Imagination Technologies (イマジネーション・テクノロジーズ)
DMP RS1 / PICA200 / M3000 DMP (ディジタル・メディア・プロフェッショナル)
VideoCore (ビデオコア) BROADCOM (ブロードコム)
VeriSilicon GC シリーズ VeriSilicon (ベリシリコン)

Mali (マリ)

英ARMが各SoCメーカーに許諾してライセンス生産されるGPU。さまざまなメーカーのSoCで採用されている。

メーカー ARM(アーム)
採用SoC Helio / Dimensity
Exynos
Kirin
UNISOC SCシリーズ
Rockchip RKシリーズ
OMAP

Adreno (アドレノ)

クアルコムのSoC Snapdragonに内蔵されたGPU

メーカー Qualcomm (クアルコム)
採用SoC Snapdragon

PowerVR (パワーブイアール)

英イマジネーションのGPU
iPhone 8で不採用となり一時期落ち込んだが、また採用が増えつつある。

メーカー Imagination Technologies (イマジネーション・テクノロジーズ)
採用SoC Helio
UNISOC SCシリーズ
Rockchip RKシリーズ
OMAP

DMP RS1 / PICA200 / M3000 など

日本のDMPのGPU
任天堂のゲーム機、バンダイナムコの遊技機、ルネサスLSIなどに使われているようだ。

メーカー DMP (ディジタル・メディア・プロフェッショナル)
採用SoC 不明

VideoCore (ビデオコア)

ブロードコムGPUラズベリーパイで使われている。
もともとはAlphamosaic(アルファモザイク)が開発していたマルチメディアプロセッサだが、2004年にブロードコムに買収された。

メーカー BROADCOM (ブロードコム)
採用SoC BCMシリーズ

VeriSilicon (ベリシリコン) GC シリーズ

米ベリシリコンのGPU
もともとは米Vivante(ビバント)が開発していたが、2015年にベリシリコンに買収された。そのため、Vivant GCシリーズと呼ばれることがある。

メーカー VeriSilicon (ベリシリコン)
採用SoC i.MX

Avalonia ってどうなの

Avalonia とは

Avalonia (アバロニア) は、WPFに似たマルチプラットフォームGUIフレームワークエストニアの AvaloniaUI 社が開発している。
ライバルは Microsoft が開発している Uno Platform (ウノ・プラットフォーム)。

特徴

リンク

Uno Platformとの比較

Avalonia 0.9 Uno Platform 3.0
開発元 AvaloniaUI Microsoft
開発環境 Visua Studio 2019 Visua Studio 2019
メイン言語 C# C#
UI記述言語 XAML XAML
.NETバージョン .NET Core 3.1 .NET Core 2.2

各種ビルドターゲットへの対応は下記の通り。

Avalonia 0.9 Uno Platform 3.0
Windowsデスクトップアプリ (Windows 7~) ❌(※1)
Windowsストアアプリ (UWP)
MacOSX
Linux ❌(※2)
iOS ❌(※3)
Android ❌(※3)
ウェブブラウザ (WebAssembly)

(※1) 将来的に、Microsoftが開発中の WinUI 3 がリリースされれば対応予定。2021年後半か?
(※2) Uno Platform 3.1 で対応するみたい?
(※3) 将来的に対応するつもりみたい

Avalonia 雑感

ダメ

  • マニュアルが全部英語
  • TextBoxのテキスト入力が、IMEインライン入力に対応していない
    • IMEが画面端に出てくるので、日本語や中国語が入力しにくい
    • TextBoxに適切なフォントを設定しておかないと日本語が文字化けする
    • ロードマップを見た感じ、IME周りは 1.0 で実装していくつもりみたい?

良い

  • WPFに触ったことがあれば、XAMLの書き方はなんとなく分かりそう
    • でもコントロールの具体的な仕様は違うので、マニュアルは読まないとダメ
  • .NET Core 3 のパブリッシュ機能が使えてすごく便利
    • 自己完結(ランタイム不要)の単一実行ファイルが簡単に作れる
      • GUIツールの配布時に「起動の仕方が分かりません」とか言われない
      • ただし初回起動はちょっと遅くなる
    • Windows 10 v1909 と MacOS 10.15.6 では普通に動いた
      • Ubuntu 20.04 ではうまく動かなかった
    • MacOS ではターミナル上で動くプログラムになる
      • .app パッケージへのバンドルがしたければ自分でやる必要がある

結論

Windowsデスクトップアプリだけを作りたいなら WPF の方が良い。将来性なら Uno Platform の方が良さそう。
Avalonia は今その隙間を埋めてくれるGUIフレームワークだけど、バージョン1.0に達していないのもあり、本格的に使ってみるにはまだ早い感じがした。もうちょっと様子見したい。