Sitemap
Pages
Posts by category
- Category: Art
- Category: Blog
- 300 Bài code thiếu nhi bằng Python – Ebook
- Tổng kết năm 2022
- Coding Conventions – người hùng hay kẻ tội đồ?
- Khai vấn (coaching)
- Mình đã tự học Flutter như thế nào?
- iOS & Swift – Tuyển tập các câu hỏi cho phỏng vấn
- Tổng kết năm 2021
- Thuật ngữ “Tin học”
- Đạo đức nghề nghiệp và lương tâm của coder
- Luyện tập code hằng ngày bằng cách nào?
- Các Websites dành cho các bạn bắt đầu học lập trình
- Chữ TUỆ
- THÂN và TRÍ
- Tất cả mã nguồn đều là rác
- Đi làm rồi mới hiểu
- iOS Developer Skill Set
- Hạnh phúc của coder
- Dev cứng
- 20 điều dân IT cần làm trước năm 30 tuổi
- “Hello world” trong các ngôn ngữ lập trình
- Tiện ích khác của Apple Card
- [Vui] Hội chứng quá để tâm đến lỗi ngữ pháp
- Hello FxStudio
- Category: Code
- Automatic Reference Counting (ARC) trong 10 phút
- Regular Expression (Regex) trong Swift
- Swift Optional trong 10 phút
- Clean Architecture trong iOS
- Dependency Injection trong 10 phút
- Giới thiệu MapKit trên SwiftUI
- Sử dụng Xcode Configuration (.xcconfig) và quản lý Build Settings
- Cài đặt bundle cho iOS Project
- Cấu hình và cài đặt CI/CD cho iOS Project
- Hello Dark mode
- Category: Combine
- Combine – Phần 3 : MVVM
- Combine vs. MVVM – Request
- Combine vs. MVVM – Actions
- Combine vs. MVVM – Binding
- Combine vs. MVVM – Overview
- Combine – Phần 2 : UIKit
- Combine vs. UIKit – Fetching Data from API
- Combine vs. UIKit – Networking
- Combine vs. UIKit – Logic
- Combine vs. UIKit – Navigation
- Combine vs. UIKit – Handle Events
- Combine vs. UIKit – Hello ViewController
- Combine – Phần 1 : Cơ bản
- Combine – Sequence Operators trong 10 phút
- Combine – Time Manipulation Operators trong 10 phút
- Combine – Combining Operators trong 10 phút
- Combine – Filtering Operators trong 10 phút
- Combine – Transforming Operators trong 10 phút
- Custom Subscriber
- Họ hàng nhà Publisher trong Combine
- Các thành phần trong Combine
- Hello Combine
- Category: Flutter & Dart
- Make color App Flutter
- Ứng dụng Flutter đầu tiên
- Cài đặt Flutter SDK & Hello world
- Giới thiệu về Flutter
- Tìm hiểu về ngôn ngữ lập trình Dart
- Asynchronous Programming – Dart Tour
- Object Oriented Programming (OOP) – Dart Tour
- Handling Collections – Dart Tour
- Map type – Dart Tour
- Set type – Dart Tour
- List type – Dart Tour
- Null safety – Dart Tour
- Classes & Objects – Dart Tour
- Functions – Dart Tour
- Control Flow – Dart Tour
- Flavor & Câu chuyện config trong Flutter
- Data Type – Dart Tour
- Variables & Constant – Dart Tour
- Expressions – Dart Tour
- Dart Defines trong Flutter và sức mạnh của nó
- Chào thế giới! – Dart Tour
- Platform-specific code with MethodChannel – Flutter
- Customize Run and Debug – Flutter
- Flavor Configurations – Flutter
- Category: iOS & Swift
- Charles Proxy – Phần 1 : Giới thiệu, cài đặt và cấu hình
- Builder Pattern trong 10 phút
- Observer Pattern trong 10 phút
- Memento Pattern trong 10 phút
- Strategy Pattern trong 10 phút
- Autoresizing Masks trong 10 phút
- Lập trình hướng giao thức (POP) với Swift
- Observation Framework trong 10 phút
- SwiftData – Sorts & Filters
- SwiftData – Hello world!
- Raw String trong 10 phút
- Dispatch Semaphore trong 10 phút
- KeyPath trong 10 phút – Swift
- Quick trong 10 phút
- Nimble trong 10 phút
- API Testing (UnitTest) with OHHTTPStubs
- UnitTest with Quick & Nimble
- Hello Testing iOS
- Guard Keyword trong 10 phút
- Creating UI trong iOS
- Lập trình hướng đối tượng (OOP) với Swift
- Storing Data in Swift & iOS
- File Manager trong 10 phút – Swift
- UserDefaults trong 10 phút
- Keychain trong 10 phút – iOS
- Multiple storyboards trong iOS
- Storyboard & Tạo giao diện cơ bản trong iOS
- nil & null
- Concurrency Roadmap – Swift 5.5
- Unstructured Concurrency – Swift 5.5
- TaskLocal Property Wrapper – Swift 5.5
- AsyncStream – Swift 5.5
- AsyncSequence – Swift 5.5
- Detached Tasks – Swift 5.5
- Opaque Type trong 10 phút – Swift
- Generics trong 10 phút – Swift
- Sendable Protocol & @Sendable trong 10 phút – Swift 5.5
- Higher Order Function in Swift
- Task & Task Group trong 10 phút – Swift 5.5
- Structured Concurrency & async let
- Property Wrapper trong 10 phút
- MainActor và điều gì xảy ra với Data trên Main Thread
- MainActor và điều gì xảy ra với UI trên Main Thread
- Cơ bản về Actor trong 10 phút – Swift 5.5
- Thread safety & data race – Swift
- Race Condition và giải pháp trong 10 phút – Swift
- async/await to Fetch REST API – Swift 5.5
- Cơ bản về async/await trong 10 phút – Swift 5.5
- Mac Catalyst App – SwiftUI Notes #19
- WatchOS App – SwiftUI Notes #18
- Swift Package – SwiftUI Notes #17
- New List with UIListContentView & UIListContentConfiguration
- Tổng hợp về Protocol & Closure trong iOS
- Delegates vs. Closure Callback
- Protocol vs. Closure – Asynchronous
- Protocol vs. Closure – Passing Data
- Swift 5.3 có gì mới?
- Convenience Initializer trong 10 phút
- Nâng tầm Optional Binding trong Swift
- Collection View – Diffable Data Source
- Swipe Actions trong UITableViewCell
- Encoding và Decoding trong Swift
- Realm Swift trong 10 phút
- Basic iOS tutorial : Final Project
- Basic iOS tutorial : MapView
- Core Location trong 10 phút
- Basic iOS tutorial : Core Data
- Basic iOS tutorial : Project Template
- Basic iOS tutorial : Core API
- Basic iOS tutorial : Connect Networking
- Basic iOS tutorial : MVVM
- Tất cả các từ khoá trong Swift
- Basic iOS tutorial : Tabbar Controller
- Lập trình iOS cho mọi người
- Basic iOS tutorial : Collection View
- Function là gì?
- Basic iOS tutorial : Custom Cell
- Basic iOS tutorial : Table View
- Basic iOS tutorial : MVC
- Singleton Pattern trong 10 phút
- Basic iOS tutorial : Navigation Controller
- Grand Central Dispatch – Managing Task
- Grand Central Dispatch – Basic Queue
- Basic iOS tutorial : ViewController life cycle
- Basic iOS tutorial : Delegation Pattern
- Protocol trong 10 phút
- Basic iOS tutorial : Stack View
- Basic iOS tutorial : Giới thiệu Auto Layout
- Basic iOS tutorial : Drawing
- Basic iOS tutorial : Custom View
- Basic iOS tutorial : Touch Event
- Basic iOS tutorial : View
- Basic Swift trong 10 phút
- Closure trong 10 phút
- Bắt đầu iOS Project không sử dụng Storyboard với Xcode 11 và Swift 5.1
- Category: RxSwift
- Animated Data Sources & Dynamic TableView – RxSwift
- RxDataSource & TableView with Section – RxSwift
- Display a basic TableView – RxSwift
- RxSwift – Phần 3 : RxCocoa Basic
- RxCocoa Basic – Extend UIKit
- RxCocoa Basic – Forward Delegate
- RxCocoa Basic – Merge Observables Input
- RxCocoa Basic – Delegate Proxy
- RxCocoa Basic – Working with multi UI Control
- RxCocoa Basic – Traits
- RxCocoa Basic – Binding Observables
- RxCocoa Basic – Display Data from API
- RxCocoa Basic – Display Data
- RxSwift – Phần 2 : UIKit
- RxSwift vs. UIKit – Networking
- RxSwift vs. UIKit – Working with Cache Data
- RxSwift vs. UIKit – Fetching Data from API
- RxSwift vs. UIKit – Tạo Model với Custom Observable
- RxSwift vs. UIKit – Tương tác giữa các ViewController
- RxSwift vs. UIKit – Hello ViewController
- RxSwift – Phần 1 : Cơ bản
- RxSwift – Time Based Operators
- RxSwift – Combining Operators
- RxSwift – Transforming Operators
- RxSwift – Filtering Operators
- RxSwift – Tìm hiểu Operators & Hello world!
- RxSwift – Relays
- RxSwift – Replay Subjects
- RxSwift – Behavior Subjects
- RxSwift – Publish Subjects
- RxSwift – Hello Subjects
- RxSwift – Traits
- RxSwift – Creating an Observable
- RxSwift – DisposeBag
- RxSwift – Observables
- RxSwift – Hello world!
- RxSwift – Giới thiệu
- Category: SwiftUI
- SwiftUI – Phần 10 : Grid Layout
- Multiple Grids – SwiftUI Notes #56
- Switching Grid Layout – SwiftUI Notes #55
- Section in Grid – SwiftUI Notes #54
- GridItem & Configuring GridLayout – SwiftUI Notes #53
- Basic Grid Layout – SwiftUI Notes #52
- SwiftUI – Phần 9 : Routing in SwiftUI
- Change Root & Screen Flow – SwiftUI Notes #51
- SideBar & Toolbar – SwiftUI Notes #50
- Custom TabBar – SwiftUI Notes #49
- TabView & PageView – SwiftUI Notes #48
- Modal View, Alert & ActionSheet – SwiftUI Notes #47
- NavigationLink – Push & Pop – SwiftUI Notes #46
- NavigationView – SwiftUI Notes #45
- SwiftUI – Phần 8 : Working with List
- Fetching Data to List from API – SwiftUI Notes #44
- Multiple Selection – SwiftUI Notes #43
- Editing Mode – SwiftUI Notes #42
- Expandable List – SwiftUI Notes #41
- Section & Grouped – SwiftUI Notes #40
- Dynamic List – SwiftUI Notes #39
- Simple List – SwiftUI Notes #38
- SwiftUI – Phần 7 : State & Data Flow
- Storing Data – SwiftUI Notes #37
- Sharing in the Environment – SwiftUI Notes #36
- Observation – SwiftUI Notes #35
- The single source of truth – SwiftUI Notes #34
- State & User Interface State – SwiftUI Notes #33
- Tổng quan về State & Data Flow – SwiftUI Notes #32
- SwiftUI – Phần 6 : Basic UI Controls
- Stack & Container – SwiftUI Notes #31
- Bản chất của Layout – SwiftUI Notes #30
- Input Controls – SwiftUI Notes #29
- TextField Style & Modifier – SwiftUI Notes #28
- Basic TextField – SwiftUI Notes #27
- Image View trong 10 phút – SwiftUI Notes #26
- Text View trong 10 phút – SwiftUI Notes #25
- SwiftUI – Phần 5 : Multiplatform App
- Multiplatform App : Extra Functions – SwiftUI Notes #24
- Multiplatform App : Design Views – SwiftUI Notes #23
- Hello Multiplatform App – SwiftUI Notes #22
- SwiftUI – Phần 4 : Apple Ecosystem
- tvOS App – SwiftUI Notes #21
- MacOS App – SwiftUI Notes #20
- SwiftUI – Phần 3 : Tích hợp SwiftUI và UIKit
- Sử dụng Custom UIView vào SwiftUI Project – SwiftUI Notes #16
- Tích hợp UIView (UIKit) vào SwiftUI Project – SwiftUI Notes #15
- Tích hợp UIViewController (UIKit) vào SwiftUI Project – SwiftUI Notes #14
- Tích hợp SwiftUI vào UIKit Project – SwiftUI Notes #13
- SwiftUI – Phần 2 : Cơ bản về ứng dụng SwiftUI App
- Declaring Data – SwiftUI Notes #12
- Basic Layout – SwiftUI Notes #11
- Reusable View – SwiftUI Notes #10
- Basic Environment values – SwiftUI Notes #9
- Declaring View – SwiftUI Notes #8
- Declarative app development – SwiftUI Notes #7
- SwiftUI App Life Cycle – SwiftUI Notes #6
- SwiftUI – Phần 1 : Làm quen với SwiftUI
- Extracting subview – SwiftUI Notes #5
- Presenting an Alert – SwiftUI Notes #4
- Updating UI – SwiftUI Notes #3
- Creating your UI – SwiftUI Notes #2
- Hello world! – SwiftUI Notes #1
- SwiftUI – Render a gradients
- SwiftUI – Outside the SafeArea
- SwiftUI – Tap Gestures
- SwiftUI – Button Action
- SwiftUI – Set size to full screen
- SwiftUI – Run in Playground
- Hello SwiftUI
- SwiftUI vs UIKit
- Category: Tutorials
- The flag of Viet Nam
- Cài đặt UIScrollView với Auto Layout trong Interface Builder
- Sign in with Apple
- Happy Valentine
- Loading images from URL
- Hướng dẫn về TestFlight
- Deploy iOS Application với Firebase – App Distribution
- Đại cương về Firebase App Distribution với iOS Project
- Setup MacOS for developer
- Firebase Crashlytics đại cương
- Thiết kế ứng dụng AR với Reality Composer trên iPhone
- Trigger build iOS Application với Travis CI
- Deploy iOS Application với Fabric
- Fastlane đại cương
- Cài đặt Certificate và Provisioning profile lên CI
- Auto review code & report lên Github với SwiftLint và LinterBot
- Cấu hình Travis CI cho iOS Project trên GitHub
- [Videos] Mini series SwiftUI – List with Multiple Selection
- Category: No Category