41554 blogs · [ { "id": "01a0872c-20f1-727b-ab42-2df87ed246e9", "title": "With AI, I can just build things!", "url": "https://antran.app/blogs/2025/you_can_just_do_things/", "published_at": "2025-10-18T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df87ee64e88", "title": "Why Everyone Should Create Their Own To-Do List Apps (or Systems)?", "url": "https://antran.app/blogs/2025/todo_for_minimalists/", "published_at": "2025-01-25T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df87fe07c84", "title": "iOS Interview - Leetcode 448. Find All Numbers Disappeared in an Array", "url": "https://antran.app/blogs/2024/leetcode_448_find_all_numbers_disappeared_in_an_array/", "published_at": "2024-11-20T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df88021c997", "title": "iOS Interview - Leetcode 128. Longest Consecutive Sequence", "url": "https://antran.app/blogs/2024/leetcode_128_longest_consecutive_sequence/", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df8805b7026", "title": "[SwiftUI] Use NSColorWell in SwiftUI macOS apps", "url": "https://antran.app/blogs/2024/swiftui_custom_color_picker/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df8810bd17b", "title": "[SwiftUI] Observing scroll offset of a List", "url": "https://antran.app/blogs/2024/observe_swiftui_list_scroll_offset/", "published_at": "2024-11-04T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df8817637e5", "title": "Minimalist Phone: A minimalist to do app", "url": "https://antran.app/blogs/2024/minimalist_phone_getting_started/", "published_at": "2024-10-27T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df8817d1b94", "title": "How to render dynamic Markdown strings in SwiftUI?", "url": "https://antran.app/blogs/2024/swiftui_text_markdown/", "published_at": "2024-10-12T00:00:00+00:00" }, { "id": "01a0872c-20f1-727b-ab42-2df881bede2f", "title": "Swift snippet to create a pie chart using CAShapeLayer and UIKit", "url": "https://antran.app/blogs/2024/pie_chart_cashapelayer_uikit/", "published_at": "2024-10-10T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcde0df801", "title": "Swift snippet to create a pie chart using Charts library", "url": "https://antran.app/blogs/2024/ios_pie_charts_swift/", "published_at": "2024-10-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcde18ed70", "title": "Swift snippet to create a bar chart using Charts library", "url": "https://antran.app/blogs/2024/ios_bar_charts_swift/", "published_at": "2024-10-08T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcde74c8a9", "title": "iOS Interview - Leetcode 347. Top K Frequent Elements", "url": "https://antran.app/blogs/2024/leetcode_347_top_k_frequent_elements/", "published_at": "2024-08-05T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcdecaa52a", "title": "iOS Interview - Leetcode 102. Binary Tree Level Order Traversal", "url": "https://antran.app/blogs/2024/leetcode_102_binary_tree_level_order_traversal/", "published_at": "2024-07-31T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcdf896af6", "title": "iOS Interview - Leetcode 15. 3 Sum", "url": "https://antran.app/blogs/2024/leetcode_15_3sum/", "published_at": "2024-07-23T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcdff90355", "title": "Heap data structure", "url": "https://antran.app/blogs/2024/heap_data_structure/", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce03c199c", "title": "iOS Interview - Leetcode 3. Longest Substring Without Repeating Characters", "url": "https://antran.app/blogs/2024/leetcode_3_longest_substring_without_repeating_characters/", "published_at": "2024-07-17T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce0d0ee1f", "title": "iOS Interview - Leetcode 973. K Closest Points to Origin", "url": "https://antran.app/blogs/2024/leetcode_973_k_closest_points_to_origin/", "published_at": "2024-07-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce166325c", "title": "Use FFmpeg to speed up iOS Simulator recordings", "url": "https://antran.app/blogs/2024/speed_up_video_with_ffmpeg/", "published_at": "2024-07-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce1e2cb71", "title": "iOS Interview - Leetcode 542. 01 Matrix", "url": "https://antran.app/blogs/2024/leetcode_542_01_matrix/", "published_at": "2024-07-10T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce243a00d", "title": "iOS Interview - Leetcode 57. Insert Interval", "url": "https://antran.app/blogs/2024/leetcode_57_insert_interval/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce2c71165", "title": "iOS Interview - Leetcode 53. Maximum Subarray", "url": "https://antran.app/blogs/2024/leetcode_53_maximum_subarray/", "published_at": "2024-07-08T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce2d82a50", "title": "iOS Interview - Leetcode 217. Contains Duplicate", "url": "https://antran.app/blogs/2024/leetcode_217_contains_duplicate/", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce3913048", "title": "iOS Interview - Leetcode 104. Maximum Depth of Binary Tree", "url": "https://antran.app/blogs/2024/leetcode_104_maximum_depth_of_binary_tree/", "published_at": "2024-06-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce3976202", "title": "Move SimRecorder from Mac App Store to Self Publishing, 50% discount code: WWDC24", "url": "https://antran.app/blogs/2024/converting_appstore_self_publishing/", "published_at": "2024-06-15T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce4955502", "title": "iOS Interview - Leetcode 876. Middle of the Linked List", "url": "https://antran.app/blogs/2024/leetcode_876_middle_of_the_linked_list/", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce5635f18", "title": "Testing Xcode 16 and macOS Sequoia", "url": "https://antran.app/blogs/2024/testing_macos_sequioa/", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce6618782", "title": "iOS Interview - Leetcode 543. Diameter of Binary Tree", "url": "https://antran.app/blogs/2024/leetcode_543_diameter_of_binary_tree/", "published_at": "2024-06-07T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce68cdde9", "title": "iOS Interview - Is static var thread-safe?", "url": "https://antran.app/blogs/2024/thread_safety_interview_questions/", "published_at": "2024-05-30T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce6c4246b", "title": "iOS Interview - Unowned referencing in Swift", "url": "https://antran.app/blogs/2024/ios_interview_unowned/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce6d14453", "title": "iOS Interview - Leetcode 67. Add Binary", "url": "https://antran.app/blogs/2024/leetcode_67_add_binary/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce75fe707", "title": "iOS Interview - Leetcode 169. Majority Element", "url": "https://antran.app/blogs/2024/leetcode_169_majority_element/", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce78e4a4c", "title": "Avoid wasting CI resources with selective testing and pre-commit hook", "url": "https://antran.app/blogs/2024/ios_selective_testing/", "published_at": "2024-05-27T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce7aed57c", "title": "iOS Interview - Leetcode 206. Reverse Linked List", "url": "https://antran.app/blogs/2024/leetcode_206_reverse_linked_list/", "published_at": "2024-05-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce824bbfa", "title": "iOS Interview - Leetcode 409. Longest Palindrome", "url": "https://antran.app/blogs/2024/leetcode_409_longest_alindrome/", "published_at": "2024-05-25T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce8679b2b", "title": "iOS Interview - ARC in iOS vs Garbage Collection in Android", "url": "https://antran.app/blogs/2024/ios_interview_arc_garbage_collection/", "published_at": "2024-05-24T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce8a783e2", "title": "[SwiftUI] Custom bindings in ForEach/List loops", "url": "https://antran.app/blogs/2024/custom_swiftui_binding/", "published_at": "2024-05-22T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fce996ea99", "title": "iOS Interview - Leetcode 70. Climbing Stairs", "url": "https://antran.app/blogs/2024/leetcode_70_climb_stairs/", "published_at": "2024-05-22T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcea1115a1", "title": "iOS Interview - Leetcode 41. First Missing Positive", "url": "https://antran.app/blogs/2024/leetcode_41_first_missing_positive/", "published_at": "2024-05-20T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcea8d3a36", "title": "iOS Interview - Leetcode 278. First Bad Version", "url": "https://antran.app/blogs/2024/leetcode_278_first_bad_version/", "published_at": "2024-05-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcead85ef5", "title": "iOS Interview - Leetcode 383. Ransom Note", "url": "https://antran.app/blogs/2024/leetcode_383_ransom_note/", "published_at": "2024-05-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fceb9499f1", "title": "iOS Interview - Leetcode 232. Implement Queue using Stacks", "url": "https://antran.app/blogs/2024/leetcode_232_implement_queue_using_stacks/", "published_at": "2024-05-15T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcec67d1b6", "title": "iOS Interview - Leetcode 141. Linked List Cycle", "url": "https://antran.app/blogs/2024/leetcode_141_linked_list_cycle/", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fced60aa24", "title": "[SwiftUI] How can you use onTapGesture for the entire row in a ForEach loop?", "url": "https://antran.app/blogs/2024/swiftui_hstack_tapgesture/", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcee2d06b2", "title": "iOS Interview - Leetcode 110. Balanced Binary Tree", "url": "https://antran.app/blogs/2024/leetcode_110_balanced_binary_tree/", "published_at": "2024-05-13T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcee438a5f", "title": "iOS Interview - Leetcode 235. Lowest Common Ancestor of a Binary Search Tree", "url": "https://antran.app/blogs/2024/leetcode_235_lowest_common_ancestor_of_a_binary_search_tree/", "published_at": "2024-05-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fceefa180f", "title": "iOS Interview - Leetcode 733. Flood Fill", "url": "https://antran.app/blogs/2024/leetcode_733_flood_fill/", "published_at": "2024-05-08T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcef03f0a4", "title": "iOS Interview - Leetcode 704. Binary Search", "url": "https://antran.app/blogs/2024/leetcode_704_binary_search/", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcef87c03e", "title": "Fix Xcode losing references to downloaded Simulator runtimes", "url": "https://antran.app/blogs/2024/fixing_xcode_simulators/", "published_at": "2024-05-06T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fceff0d58a", "title": "iOS Interview - Leetcode 242. Valid Anagram", "url": "https://antran.app/blogs/2024/leetcode_242_valid_anagram/", "published_at": "2024-05-05T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf0d1f68c", "title": "iOS Interview - Leetcode 121. Best Time to Buy and Sell Stock", "url": "https://antran.app/blogs/2024/leetcode_121_best_stock_price/", "published_at": "2024-05-03T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf1b553a5", "title": "iOS Interview - Leetcode 226. Invert Binary Tree", "url": "https://antran.app/blogs/2024/leetcode_226_invert_binary_tree/", "published_at": "2024-05-03T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf1f10b7f", "title": "iOS Interview - Leetcode 21. Merge Two Sorted Lists", "url": "https://antran.app/blogs/2024/leetcode_21_merge_two_sorted_lists/", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf2818558", "title": "iOS Interview - Leetcode 4: Median of Two Sorted Arrays", "url": "https://antran.app/blogs/2024/leetcode_4_median_two_sorted_arrays/", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf3011936", "title": "iOS Interview - Explaining Dictionary data structure in Swift", "url": "https://antran.app/blogs/2024/ios_interview_dictionary/", "published_at": "2024-04-29T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf3b27328", "title": "MLX - Day 4: Evaluate LLM Models from CLI with MLX on macOS", "url": "https://antran.app/blogs/2024/mlx_swift_example_cli/", "published_at": "2024-04-28T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf3d66452", "title": "iOS Interview - Leetcode 14. Longest Common Prefix", "url": "https://antran.app/blogs/2024/leetcode_14_longest_common_prefix/", "published_at": "2024-04-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf42512b2", "title": "iOS Interview - Leetcode 20: Valid Parentheses", "url": "https://antran.app/blogs/2024/leetcode_20_valid_parentheses/", "published_at": "2024-04-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf5073e18", "title": "iOS Interview - Leetcode 7: Reverse Integer", "url": "https://antran.app/blogs/2024/leetcode_7_reverse_integer/", "published_at": "2024-04-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf5dcce5d", "title": "MLX - Day 3: Running the MLX sample app on macOS, iOS and visionOS", "url": "https://antran.app/blogs/2024/mlx_swift_examples/", "published_at": "2024-04-25T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf679faa8", "title": "MLX - Day 2: Getting started with MLX Swift Examples", "url": "https://antran.app/blogs/2024/mlx_swift_getting_started/", "published_at": "2024-04-24T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf778369b", "title": "iOS Interview - Leetcode 9: Palindrome Number", "url": "https://antran.app/blogs/2024/leetcode_9_palindrome_number/", "published_at": "2024-04-23T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf8184ea6", "title": "MLX - Day 1: Getting started", "url": "https://antran.app/blogs/2024/mlx_installation/", "published_at": "2024-04-23T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf8fcf2a6", "title": "iOS Interview - An Introduction to the Queue Data Structure and Its Applications", "url": "https://antran.app/blogs/2024/leetcode_queue/", "published_at": "2024-04-22T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf96a08a7", "title": "MLX: On-device machine learning on Apple Silicon", "url": "https://antran.app/blogs/2024/mlx_getting_started/", "published_at": "2024-04-22T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcf9839524", "title": "Custom SwiftUI Activity Indicator for macOS apps", "url": "https://antran.app/blogs/2024/macos_progressview/", "published_at": "2024-04-21T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfa03572e", "title": "iOS Interview - Using Stack to Solve Data Structure and Algorithm Problems in Swift", "url": "https://antran.app/blogs/2024/leetcode_stack/", "published_at": "2024-04-17T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfa62085f", "title": "iOS Interview - Backtracking Algorithms: Solving Data Structure and Algorithm Problems in Swift", "url": "https://antran.app/blogs/2024/leetcode_backtracking/", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfaed0549", "title": "iOS Interview - Binary Search Algorithms in Swift", "url": "https://antran.app/blogs/2024/leetcode_binary_search/", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfb4519a1", "title": "iOS Interview - Mastering the Hash Table Pattern in Swift", "url": "https://antran.app/blogs/2024/leetcode_hash_tables/", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfbca7ec2", "title": "iOS Interview - Reimplement map and compactMap high-order function in Swift", "url": "https://antran.app/blogs/2024/swift_map/", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfbf251ed", "title": "iOS Interview - Dynamic Programming", "url": "https://antran.app/blogs/2024/leetcode_dynamic_programming/", "published_at": "2024-04-14T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfc7978fd", "title": "iOS Interview - Breadth-First Search", "url": "https://antran.app/blogs/2024/leetcode_bfs/", "published_at": "2024-04-13T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfd3f11a8", "title": "iOS Interview - Depth-First Search", "url": "https://antran.app/blogs/2024/leetcode_dfs/", "published_at": "2024-04-13T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfde293ef", "title": "iOS Interview - Two Pointers Technique", "url": "https://antran.app/blogs/2024/leetcode_two_pointers/", "published_at": "2024-04-13T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfeb6d0ca", "title": "iOS Interview - Sliding Window Technique", "url": "https://antran.app/blogs/2024/leetcode_sliding_window/", "published_at": "2024-04-12T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcfec7f54c", "title": "iOS Interview - Understanding Dynamic Dispatch and Static Dispatch in Swift", "url": "https://antran.app/blogs/2024/dynamic_static_dispatch/", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcff2f7078", "title": "iOS Interview - Understanding and Implementing Phantom Types in Swift", "url": "https://antran.app/blogs/2024/swift_phantom_type/", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcffb44a26", "title": "iOS Interview - Understanding Type Erasure in Swift: A Comprehensive Guide", "url": "https://antran.app/blogs/2024/swift_type_erasure/", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fcffdde0ee", "title": "iOS Interview - Understanding and Implementing Thread-Safe Arrays", "url": "https://antran.app/blogs/2024/thread_safe_array/", "published_at": "2024-04-08T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd00893e9c", "title": "iOS Interview - Swift Method Swizzling", "url": "https://antran.app/blogs/2024/swift_method_swizzling/", "published_at": "2024-04-07T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd008b995c", "title": "iOS Interview - Thread explosion in iOS Programming", "url": "https://antran.app/blogs/2024/thread_explosions/", "published_at": "2024-04-07T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0168e2b0", "title": "Fixing Keyboard shortcuts not working for TextFields in macOS apps", "url": "https://antran.app/blogs/2024/macos_storyboard_commands/", "published_at": "2024-04-02T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd022fce77", "title": "iOS Interview - DispatchSemaphore explained", "url": "https://antran.app/blogs/2024/semaphore/", "published_at": "2024-03-18T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd02696948", "title": "Store a codable model into AppStorage", "url": "https://antran.app/blogs/2024/appstorage_codable/", "published_at": "2024-03-17T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd02804417", "title": "How to run asynchronous code in Swift Playground correctly?", "url": "https://antran.app/blogs/2024/swift_playground_async_execution/", "published_at": "2024-03-17T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd02b4bfa6", "title": "How to run iOS Apps on iOS 12 Simulator when using macOS Ventura?", "url": "https://antran.app/blogs/2023/running_ios_12_simulator_ventura/", "published_at": "2023-10-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0373481a", "title": "Week 42: Reading Notes", "url": "https://antran.app/blogs/2023/week_42_reading_notes/", "published_at": "2023-10-26T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0413586e", "title": "Week 41: Reading Notes", "url": "https://antran.app/blogs/2023/week_41_reading_notes/", "published_at": "2023-10-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0478f4c0", "title": "Week 39: Reading Notes", "url": "https://antran.app/blogs/2023/week_39_reading_notes/", "published_at": "2023-10-01T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd04dbf3a9", "title": "Why my SwiftUI Picker doesn't recognize my selection?", "url": "https://antran.app/blogs/2023/swiftui_picker_not_selected/", "published_at": "2023-09-15T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0529a2a5", "title": "Use Mint to install Swift command line tool package without root permission", "url": "https://antran.app/blogs/2023/mint/", "published_at": "2023-09-01T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd05575cea", "title": "Mastering iOS Simulator Control - Setting A Location Or Route", "url": "https://antran.app/blogs/2023/mastering_simctl_part2/", "published_at": "2023-08-15T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd0598d1ce", "title": "Mastering iOS Simulator Control with simctl (Part 1)", "url": "https://antran.app/blogs/2023/mastering_simctl_part1/", "published_at": "2023-07-16T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd06831d35", "title": "Trap exit code (SIGINT, SIGTERM etc) in a Swift Package Executable CLI", "url": "https://antran.app/blogs/2022/swift_package_executable_trap_sigint/", "published_at": "2022-12-11T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd06d436e0", "title": "How to use Github Copilot with Swift using Visual Studio Code?", "url": "https://antran.app/blogs/2021/github_copilot_swift/", "published_at": "2021-10-31T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd07b9512c", "title": "How to access private repositories from Github Actions?", "url": "https://antran.app/blogs/2021/access_private_repos_github_actions/", "published_at": "2021-09-12T00:00:00+00:00" }, { "id": "01a0872c-20f2-73dd-9a8a-28fd08516dc8", "title": "Activity Indicator in SwiftUI", "url": "https://antran.app/blogs/2019/swiftui_activity_indicator/", "published_at": "2019-06-10T22:40:32+00:00" } ] posts Claim your blog
Back to antran.app
Blog · corpus.blog/blogs/antran.app/posts

antran.app

antran.app

2025

2024

2023

2022

2021

2019