Skip to content

Instantly share code, notes, and snippets.

View kishikawakatsumi's full-sized avatar
🏠
Working from home

Kishikawa Katsumi kishikawakatsumi

🏠
Working from home
View GitHub Profile
<中間報告の該当箇所: 72ページ>
> a. アップデートに対応する十分な時間を確保した上での事前告知の実施 (OS のアップデートが与える影響の大きさに応じて、(より長期の)適切な準備期間の義務付け)
> b. 最新バージョンに関する適切な情報開示(変更に伴うデータの引継ぎやAPIとの連携に関する運用面での対応に関するもの等を含む)
> c. デベロッパからの問い合わせに関する手続・体制の整備
> d. 運営状況の政府への報告と、政府によるモニタリング・レビューの実施
プラットフォーム側が提供する情報の読解力によって差が生じているという事実は存在するが、それは事業者の能力に起因する問題であり能力の低い事業者に合わせて規制を設計することはこの分野の健全な発展を阻害し、自由な競争すら行われなくなる恐れがある。
またソフトウェアは変化が激しく、AppleやGoogleでさえも1年以上の期間にわたる予測を正確んい行うことは困難である。ほとんどの場合において、情報が遅かったり不確実であったり、プラットフォームやファーストバーティが優遇されているように見えたり、という問題はプラットフォーム側が自身の利益のために意図的に情報を隠しているわけではなく必然と考えられる(もちろん例外はある)。
<中間報告の該当箇所: 113ページ>
アプリストアの問題は大きく、セキュリティ、市場(の独占)、検閲の3点がそれぞれ独立しつつ関係しているのですべてを一緒に議論してしまうのは短絡的な議論となる恐れがある。
セキュリティについて。iOSにおいてセキュリティの根幹は強固なサンドボックス機構であり、サイドローディングの禁止と審査がセキュリティの向上に寄与しているというAppleの説明は誤解を招く意図があると考えられる。
またアプリのレビューはセキュリティの専門家が行っているわけではなく、レビューで検知できなかった不正な挙動をするアプリは過去に複数確認されている。
iOSにおいて現状のアプリストアの存在はセキュリティの担保には関係ない。その点でこの調査報告はおおむね妥当である。
ただし、サイドローディングに関しては現状においてもストアを介さない配布方法は制限がありながらも認められており、ほとんどのユースケースはそれで対応できると考えられる。利用者の選択肢を増やすという意味でサイドローディングが可能になることは望ましいが、それはあくまで利用者とプラットフォーム側の力関係によってなされるべきであり、行政機関が強制するようなことではない。
func f() {
print("Hello World!\n")
}
f()
require "net/http"
require "uri"
require "pty"
require "expect"
require "fastlane"
require "spaceship"
def fastlane_spaceauth(user, password, default_phone_number)
ENV["FASTLANE_USER"] = user
ENV["FASTLANE_PASSWORD"] = password
struct Player {
var name: String
var highScore: Int = 0
var history: [Int] = []
init(_ name: String) {
self.name = name
}
}
require 'open3'
stdout, stderr, status = Open3.capture3(*['xcrun', 'xccov', 'view', '--report', '/path.to/result.xcresult', '--json'])
puts stdout # => {...}
@kishikawakatsumi
kishikawakatsumi / TableHeaderView-AutoLayout.swift
Created April 29, 2020 11:19
Auto sizing UITableView header
...
headerView.translatesAutoresizingMaskIntoConstraints = false
tableView.tableHeaderView = headerView
NSLayoutConstraint.activate([
headerView.topAnchor.constraint(equalTo: tableView.topAnchor),
headerView.widthAnchor.constraint(equalTo: tableView.widthAnchor),
headerView.centerXAnchor.constraint(equalTo: tableView.centerXAnchor)])
tableView.tableHeaderView?.layoutIfNeeded()
import Cocoa
import AVFoundation
class ViewController: NSViewController, AVCaptureVideoDataOutputSampleBufferDelegate {
private let session = AVCaptureSession()
override func viewDidLoad() {
super.viewDidLoad()
view.wantsLayer = true
@kishikawakatsumi
kishikawakatsumi / DispatchGroup.swift
Last active February 29, 2020 05:57
Executing asynchronous tasks sequentially in Swift
let q = DispatchQueue(label: "q")
let group = DispatchGroup()
group.enter()
q.async {
loadA(completion: {
// Do something...
group.leave()
})
}
@kishikawakatsumi
kishikawakatsumi / TabView.swift
Created November 27, 2019 04:51
My SwiftUI TabView
import SwiftUI
struct TabView: View {
var views: [TabBarItem]
@State var selectedIndex: Int = 0
init(_ views: [TabBarItem]) {
self.views = views
}