Skip to content

Instantly share code, notes, and snippets.

View rijieli's full-sized avatar
🍺

Roger Lee rijieli

🍺
View GitHub Profile
@rijieli
rijieli / AVSpeechSynthesisVoiceTest.swift
Created November 17, 2023 09:53
Test the built-in voice speech on iOS
let allVoices = AVSpeechSynthesisVoice.speechVoices().filter { theVoice in
theVoice.language.contains("zh")
}
for idx in allVoices.indices {
let theVoice = allVoices[idx]
let lang = theVoice.language
let gender: String
if theVoice.gender == .male {
gender = "male"
@rijieli
rijieli / InfiniteScrollChart.swift
Created November 7, 2022 08:44 — forked from beader/InfiniteScrollChart.swift
Infinite Scrollable Bar Chart using Swift Charts
//
// InfiniteScrollChart.swift
// ChartsGallery
//
// Created by beader on 2022/11/3.
//
import SwiftUI
import Charts
@rijieli
rijieli / ChineseTransliterator.swift
Created May 20, 2022 03:09
Transliterate Chinese between simplified and traditional (the wrong way).
import UIKit
struct ChineseTransliterator {
static func transliterate(text: String, sourceView: UIView) {
let textView = UITextView()
textView.isHidden = true
textView.text = text
textView.selectAll(nil)
sourceView.addSubview(textView)
@rijieli
rijieli / MusicPlayerManager.swift
Created May 12, 2022 16:38 — forked from loretoparisi/MusicPlayerManager.swift
Ambiguous use of play of MPMusicPlayerController in iOS11, swift4 - Apple Example "Adding Content to Apple Music"
/*
See LICENSE folder for this sample’s licensing information.
Abstract:
The `MusicPlayerManager` manages the media playback using the `MPMusicPlayerController` APIs.
*/
import UIKit
import MediaPlayer
# TAGS speparated by vertical line |
OPTIMIZE_TAGS="OPTIMIZE:|TEST:"
find "${SRCROOT}/" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($OPTIMIZE_TAGS).*\$" | wc -l | xargs -I{} echo "warning: 🔆 {} Optimize | Test Items"
NEXTUP_TAGS="NEXTUP:"
find "${SRCROOT}/" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($NEXTUP_TAGS).*\$" | wc -l | xargs -I{} echo "warning: 🗃️ {} NextUp Tasks"
FIXME_TAGS="FIXME:"
@rijieli
rijieli / Jekyll Local Environment.md
Created March 31, 2022 05:10
Jekyll Running Locally on M1 Chip Mac
brew install rbenv ruby-build
rbenv init # Or add eval "$(rbenv init - zsh)" to rc file
rbenv install 2.7.2
echo 2.7.2 > .ruby-version
gem inst ffi -- --disable-system-libffi
bundle install
bundle exec jekyll serve
@import Photos;
[PHPhotoLibrary requestAuthorizationForAccessLevel:PHAccessLevelReadWrite handler:^(PHAuthorizationStatus status) {
NSLog(@"PHAuthorizationStatus: %ld", status);
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.includeHiddenAssets = YES;
fetchOptions.includeAllBurstAssets = YES;
PHFetchResult<PHAsset *> *result = [PHAsset fetchAssetsWithOptions:fetchOptions];
@rijieli
rijieli / DropShadowEffect.swift
Created March 30, 2022 11:41
Sketch drop shadow effect to iOS Swift Code.
import Foundation
import UIKit
struct DropShadowStyle {
var color: UIColor = .black
var alpha: Float = 0.1
let x: CGFloat
let y: CGFloat
let blur: CGFloat
let spread: CGFloat
@rijieli
rijieli / Download Twitter Spaces Audio.md
Last active November 13, 2024 23:13
Download Twitter Spaces Audio By URL

python -m venv .venv

source .venv/bin/activate

pip install m3u8downloader

downloadm3u8 -o foo.mp4 spaces_m3u8_url

ffmpeg -i foo.mp4 -b:a 192K -vn bar.mp3

@rijieli
rijieli / sketch_gradient_to_ios_swift_code.js
Last active August 17, 2021 05:52
This Script convert Sketch gradient to CALayer Swift Code. Open Sketch, select one layer, press control + shift + K paste code to run.
console.log('Select Layer Then Run Script.');
var sketch = require('sketch');
var UI = require('sketch/ui');
var document = sketch.getSelectedDocument();
var selectedLayers = document.selectedLayers;
var selectedCount = selectedLayers.length;