Skip to content

Instantly share code, notes, and snippets.

@enomoto
enomoto / ImageCache.swift
Created November 28, 2021 05:48
simple image cache for iOS
import UIKit
struct ImageCache {
static func loadImage(url: URL, user: User) async throws -> (UIImage, User) {
if let cachedImage = InMemoryImageCache.shared.get(forKey: url) {
return (cachedImage, user)
}
let urlRequest = URLRequest(url: url)
let (data, response) = try await URLSession.shared.data(for: urlRequest)
import csv
import requests
from bs4 import BeautifulSoup
def parse_collection_item(item):
h4 = item.find('h4')
event = item.find('li', class_='video-tag event').text
a = item.find('a', class_='video-image-link')
link_path = a.get('href')
url = 'https://developer.apple.com' + link_path
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
globeLabel
.padding()
}
}
@enomoto
enomoto / ContentView.swift
Last active September 20, 2022 00:35
Sample for simple modifier
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
globeLabel
.padding()
.mainCell() // Applying quite simple custom modifier
}
}
@enomoto
enomoto / displayScale.swift
Last active May 30, 2023 12:01
iOS display scale
import UIKit
print(UITraitCollection.current.displayScale) // 3.0 (if device is iPhone 14.0)
print(UIScreen.main.scale) // 3.0 (if device is iPhone 14.0)
var pixelLengthForUIKit: CGFloat = {
1 / UITraitCollection.current.displayScale
}
@enomoto
enomoto / head_comment_cleaner.sh
Created June 16, 2023 21:35
ファイルの先頭のコメントを削除する shell script
#!/bin/bash
# ファイルパスを指定してください
FILE_PATH="path/to/file.swift"
# ファイルの内容を読み込みます
content=$(cat "$FILE_PATH")
# コメント行を削除します
new_content=$(echo "$content" | sed -e '/^[[:space:]]*\/\/.*$/d')
@enomoto
enomoto / MyButton.swift
Created June 20, 2023 00:44
UIButton with UIButton.Configuration
import UIKit
final class MyButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
var configuration = UIButton.Configuration.filled()
configuration.title = "My Button"
configuration.baseForegroundColor = .black
configuration.baseBackgroundColor = .red
@enomoto
enomoto / code_reading.md
Created July 12, 2023 01:43 — forked from taichi/code_reading.md
太一のコードの読み方メモ

太一のコードの読み方メモ

全体として太一が感覚的に実践している事を論理的に説明しようと試みている為、
説明の粒度が適切でなかったり一貫性が無いように見える部分があるかもしれない。
普段やっているけども書ききれていない事も多分きっとある。

コードを読むとは何か

  • コードを嗜む
  • コードを学ぶ
  • 武器を手に入れる
@enomoto
enomoto / ContainerViewController.swift
Last active July 24, 2023 06:08
UIPageViewController with inifinite scrolling
import UIKit
final class ContainerViewController: UIViewController {
private let pageViewController: UIPageViewController = .init(transitionStyle: .scroll, navigationOrientation: .horizontal)
private let childViews: [UIViewController] = {
let vc0 = UIViewController()
vc0.view.backgroundColor = .red
let vc1 = UIViewController()
vc1.view.backgroundColor = .red.withAlphaComponent(0.6)
let vc2 = UIViewController()
@enomoto
enomoto / TabView.swift
Created October 18, 2023 06:40
SimpleTabView with SwiftUI
import SwiftUI
struct ContentView: View {
var body: some View {
MyTabView(
tabContents: [
.init(id: 0, title: "foo", content: PageView(title: "foo", color: .yellow)),
.init(id: 1, title: "bar", content: PageView(title: "bar", color: .red)),
.init(id: 2, title: "baz", content: PageView(title: "baz", color: .brown)),