<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Needone</title><description>Technical notes and articles migrated from Ghost, organized into iOS, Android, Unity, and Other.</description><link>https://needone.app/</link><item><title>6 most useful git commands</title><link>https://needone.app/blog/6-most-useful-git-commands/</link><guid isPermaLink="true">https://needone.app/blog/6-most-useful-git-commands/</guid><description>If you prefer to use commands through git, here are the 6 most useful git commands you can use in the project. Check unmerged branches If we have multiple branches and want to find</description><pubDate>Sun, 13 Sep 2020 21:20:00 GMT</pubDate></item><item><title>A summary of use enum in Swift</title><link>https://needone.app/blog/a-summary-of-use-enum-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/a-summary-of-use-enum-in-swift/</guid><description>Enumeration type is a common type in many programming languages, which normally presents a set of limited status for a program, such as list all the directions for a compass: enum</description><pubDate>Sun, 28 Feb 2021 20:48:10 GMT</pubDate></item><item><title>AC Pocket Guide updated</title><link>https://needone.app/blog/ac-pocket-guide-users/</link><guid isPermaLink="true">https://needone.app/blog/ac-pocket-guide-users/</guid><description>My wife built a &quot;bridge&quot; I am the OP on the OZBargin post ( link ) and also the developer of the AC Pocket Guide ( iOS link ). Today (11 Apr 2020) I want to say sorry to you . As f</description><pubDate>Fri, 10 Apr 2020 23:18:29 GMT</pubDate></item><item><title>An easy example on how to use Jetpack ViewModel and LiveData</title><link>https://needone.app/blog/an-easy-example-on-how-to-use-viewmodel-and-livedata/</link><guid isPermaLink="true">https://needone.app/blog/an-easy-example-on-how-to-use-viewmodel-and-livedata/</guid><description>Jetpack broken up into four main areas: Architecture, Foundation, Behavior and UI. ViewModel ViewModel helped to achieve two things: help the project to adopt MVVM architecture hol</description><pubDate>Wed, 22 Jul 2020 01:44:43 GMT</pubDate></item><item><title>Android: Are you familiar with onCreate(), onStart() onResume() and ...</title><link>https://needone.app/blog/android-are-you-familiar-with-oncreate-onstart-onresume/</link><guid isPermaLink="true">https://needone.app/blog/android-are-you-familiar-with-oncreate-onstart-onresume/</guid><description>running order of onCreate, onStart, onResume and onDestory .... in Android using Kotlin</description><pubDate>Mon, 06 Jul 2020 02:24:46 GMT</pubDate></item><item><title>Dive into Android Application Lifecycle – A simple tutorial for iOS developers</title><link>https://needone.app/blog/android-life-cycle/</link><guid isPermaLink="true">https://needone.app/blog/android-life-cycle/</guid><description>Introduction Due to some requirements from work, I was asked to immigrate current iOS product into Android. If you are like me, who are mainly working on iOS, but want to put hands</description><pubDate>Tue, 10 Jul 2018 23:59:00 GMT</pubDate></item><item><title>viewWillAppear, viewDidAppear, viewDidLoad, viewWillDisappear and viewDidDisappear?</title><link>https://needone.app/blog/are-you-familar-with-viewwillappear-viewdidappear-viewdidload-viewwilldisappear-and-viewdiddisappear/</link><guid isPermaLink="true">https://needone.app/blog/are-you-familar-with-viewwillappear-viewdidappear-viewdidload-viewwilldisappear-and-viewdiddisappear/</guid><description>Introduction Before this, let me ask you what is the running order of viewWillAppear , viewDidAppear , viewDidLoad , viewWillDisappear and viewDidDisappear ? If you know the answer</description><pubDate>Fri, 07 Apr 2017 22:56:00 GMT</pubDate></item><item><title>Australian Driving Test for all States 2019</title><link>https://needone.app/blog/australia-driving-test/</link><guid isPermaLink="true">https://needone.app/blog/australia-driving-test/</guid><description>Australian Driving Test 2019 version. Official data for all States collected from their official websites, including: * New South Wales (NSW), Roads and Maritime Services (TMR) * V</description><pubDate>Sun, 20 Oct 2019 20:25:44 GMT</pubDate></item><item><title>How did I pass my Australian Citizenship Test within 7 days</title><link>https://needone.app/blog/australian-citizenship-test-pass/</link><guid isPermaLink="true">https://needone.app/blog/australian-citizenship-test-pass/</guid><description>Australia Citizenship Test in 2019, which will answer almost every question that you need before you attend the test.

Available on Google Play app</description><pubDate>Fri, 02 Aug 2019 01:51:07 GMT</pubDate></item><item><title>[iOS/Android] Australian Slang</title><link>https://needone.app/blog/australian-slang/</link><guid isPermaLink="true">https://needone.app/blog/australian-slang/</guid><description>A MUST have app while travelling and living in Australia</description><pubDate>Mon, 15 Apr 2019 20:51:40 GMT</pubDate></item><item><title>Authentication in RESTful API</title><link>https://needone.app/blog/authentication-in-restful-api/</link><guid isPermaLink="true">https://needone.app/blog/authentication-in-restful-api/</guid><description>RESTful API is a protocal based on HTTP. Sometimes we want to encrypt the RESTful API content while using. There are three encryption in practise: 1. HTTP Basic Authentication HTTP</description><pubDate>Wed, 16 Aug 2017 22:29:00 GMT</pubDate></item><item><title>Barcode and QR code Reader</title><link>https://needone.app/blog/barcode-and-qr-code-reader/</link><guid isPermaLink="true">https://needone.app/blog/barcode-and-qr-code-reader/</guid><description>The most fastest &amp; easy-to-use Barcode/QR Reader - download now for FREE! FEATURES Code Scanner - scans QR codes &amp; barcodes Support more than 10 formats, includes ISBN, product bar</description><pubDate>Thu, 04 Oct 2018 05:06:00 GMT</pubDate></item><item><title>Bottom Sheet Dialog implementation in kotlin</title><link>https://needone.app/blog/bottom-sheet-dialog-implementation-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/bottom-sheet-dialog-implementation-in-kotlin/</guid><description>To create a bottom sheet dialog in Kotlin, you can use the BottomSheetDialog class from the Android Support Library, which is a built-in package. Here&apos;s an example of how you can u</description><pubDate>Sat, 17 Dec 2022 21:59:45 GMT</pubDate></item><item><title>Bridging Legacy APIs with MainActor.assumeIsolated</title><link>https://needone.app/blog/bridging-legacy-apis-with-mainactor-assumeisolated/</link><guid isPermaLink="true">https://needone.app/blog/bridging-legacy-apis-with-mainactor-assumeisolated/</guid><description>Despite strict concurrency checking having been available for some time, many official Apple APIs remain inadequately adapted—a situation likely to persist for the foreseeable futu</description><pubDate>Wed, 04 Mar 2026 23:25:49 GMT</pubDate></item><item><title>Certificate pinning and Public key pinning</title><link>https://needone.app/blog/certifate-pinning-public-key-pinning/</link><guid isPermaLink="true">https://needone.app/blog/certifate-pinning-public-key-pinning/</guid><description>Certificate pinning and public key pinning are both techniques that are used to enhance the security of a network connection by ensuring that the client trusts only a specific cert</description><pubDate>Wed, 22 Feb 2023 18:00:18 GMT</pubDate></item><item><title>Certificate pinning and Public key pinning in Kotlin</title><link>https://needone.app/blog/certificate-pinning-and-public-key-pinning-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/certificate-pinning-and-public-key-pinning-in-kotlin/</guid><description>With the last article ( Certificate pinning and Public key pinning ), we know the concept of Certificate pinning and Public key pinning, and how to implement them in iOS. This arti</description><pubDate>Fri, 24 Feb 2023 18:00:21 GMT</pubDate></item><item><title>What is Codable in Swift</title><link>https://needone.app/blog/codable-in-ios-development/</link><guid isPermaLink="true">https://needone.app/blog/codable-in-ios-development/</guid><description>codable in swift, and Decoeable, encodable example</description><pubDate>Fri, 28 Aug 2020 21:27:16 GMT</pubDate></item><item><title>Command pattern in Swift</title><link>https://needone.app/blog/command-pattern-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/command-pattern-in-swift/</guid><description>Many of us have heard about the Command pattern or used them in the development, which is a behavioral design pattern in which an object is used to encapsulate all of the informati</description><pubDate>Fri, 30 Dec 2022 22:09:46 GMT</pubDate></item><item><title>Companion Object in Kotlin</title><link>https://needone.app/blog/companion-object-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/companion-object-in-kotlin/</guid><description>Kotlin provides a brand new keyword companion which not exists in other programming languages. But don&apos;t be panic, it is not something new when you have one step closer. A companio</description><pubDate>Tue, 06 Dec 2022 21:26:27 GMT</pubDate></item><item><title>Compiler directives in Swift</title><link>https://needone.app/blog/compiler-directives-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/compiler-directives-in-swift/</guid><description>This post is going to list some of the most frequently used compiler directives in Swift, compatible in Swift 3/4/5. Someone might call this preprocessor directives , but they are</description><pubDate>Sun, 08 Jan 2023 20:20:00 GMT</pubDate></item><item><title>Constants in Objective-C</title><link>https://needone.app/blog/constants-in-objective-c/</link><guid isPermaLink="true">https://needone.app/blog/constants-in-objective-c/</guid><description>Recently I was working on a legacy project written in Objective-C, which reminded me of the early days when working on Objective-C projects. In the code I saw few things like the f</description><pubDate>Sat, 12 Dec 2020 22:31:17 GMT</pubDate></item><item><title>Constructor Injection, Property Injection vs. Method Injection</title><link>https://needone.app/blog/constructor-injection-property-injection-or-method-injection/</link><guid isPermaLink="true">https://needone.app/blog/constructor-injection-property-injection-or-method-injection/</guid><description>Dependency Injection is a design pattern that is providing another object with its dependencies, instead of having the object created or managed themselves. There are three main ty</description><pubDate>Sun, 11 Dec 2022 20:24:20 GMT</pubDate></item><item><title>ContentHugging vs. ContentCompressionResistance in UIStackView</title><link>https://needone.app/blog/contenthugging-and-contentcompressionresistance/</link><guid isPermaLink="true">https://needone.app/blog/contenthugging-and-contentcompressionresistance/</guid><description>In Swift, it is quite common to see ContentHugging and ContentCompressionResistance either when we are using the storyboard or code to render the user interfaces in UIStackView . T</description><pubDate>Thu, 08 Dec 2022 20:31:26 GMT</pubDate></item><item><title>Create an Auto build script for Aseprite on Mac OS</title><link>https://needone.app/blog/create-an-auto-build-script-for-aseprite-on-mac-os/</link><guid isPermaLink="true">https://needone.app/blog/create-an-auto-build-script-for-aseprite-on-mac-os/</guid><description>Aseprite is a famous 2D pixel art tool that allow you to create 2D animations, sprites, and any kind of graphics for games. It is not free, you can get a copy from Steam for USD $1</description><pubDate>Tue, 10 Apr 2018 04:10:00 GMT</pubDate></item><item><title>Data Racing in Swift</title><link>https://needone.app/blog/data-racing-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/data-racing-in-swift/</guid><description>A data race in Swift occurs when two or more threads access the same memory location simultaneously and at least one of them is writing to it, without proper synchronization. This</description><pubDate>Fri, 03 Feb 2023 16:00:33 GMT</pubDate></item><item><title>Days Gone Widget</title><link>https://needone.app/blog/days-gone-widget/</link><guid isPermaLink="true">https://needone.app/blog/days-gone-widget/</guid><description>Dear time master, Thanks for downloading this app. Time travels fast, with days gone app we can put a nice-looking widget on your Home Screen so we would know where you are during</description><pubDate>Thu, 31 Dec 2020 21:11:00 GMT</pubDate></item><item><title>Decorator in Unity</title><link>https://needone.app/blog/decorator-in-unity/</link><guid isPermaLink="true">https://needone.app/blog/decorator-in-unity/</guid><description>Decorator in Unity</description><pubDate>Thu, 25 Jun 2020 12:19:30 GMT</pubDate></item><item><title>Default Actor Isolation: A Great Intention with New Challenges</title><link>https://needone.app/blog/default-actor-isolation-a-great-intention-with-new-challenges/</link><guid isPermaLink="true">https://needone.app/blog/default-actor-isolation-a-great-intention-with-new-challenges/</guid><description>While the primary goal of Swift’s strict concurrency checking is noble, it has introduced significant friction in single-threaded scenarios. Developers often find themselves clutte</description><pubDate>Wed, 04 Mar 2026 22:57:53 GMT</pubDate></item><item><title>Default iOS URL Schemas</title><link>https://needone.app/blog/default-ios-url-schemas/</link><guid isPermaLink="true">https://needone.app/blog/default-ios-url-schemas/</guid><description>The following is a list of default URL Schemas supported natively in iOS (all versions): Objective-C // Make a phone call [[UIApplication sharedApplication] openURL:[NSURL URLWithS</description><pubDate>Sat, 02 Jan 2016 22:19:00 GMT</pubDate></item><item><title>Delete a Git branch locally and remotely</title><link>https://needone.app/blog/delete-a-git-branch-locally-and-remotely/</link><guid isPermaLink="true">https://needone.app/blog/delete-a-git-branch-locally-and-remotely/</guid><description>Delete a Git branch locally and remotely</description><pubDate>Thu, 18 Jun 2020 21:52:17 GMT</pubDate></item><item><title>Difference between activity and requireActivity() in Kotlin</title><link>https://needone.app/blog/difference-between-activity-and-requireactivity-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/difference-between-activity-and-requireactivity-in-kotlin/</guid><description>activity property In the Android framework, the Activity class represents an app&apos;s UI and provides an interface for the app to interact with the system. The activity property in a</description><pubDate>Mon, 23 Jan 2023 16:00:55 GMT</pubDate></item><item><title>Difference between layoutIfNeeded vs. setNeedsLayout</title><link>https://needone.app/blog/difference-between-layoutifneeded-vs-setneedslayout/</link><guid isPermaLink="true">https://needone.app/blog/difference-between-layoutifneeded-vs-setneedslayout/</guid><description>As many of iOS developer known, layoutIfNeeded and setNeedsLayout are two methods that can be used to update the layout of a view and its subviews. But what are their differences?</description><pubDate>Mon, 12 Dec 2022 20:27:03 GMT</pubDate></item><item><title>Download image from URL in Kotlin</title><link>https://needone.app/blog/download-image-from-url-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/download-image-from-url-in-kotlin/</guid><description>In Android, we can get the image from synchronously and asynchronously, but it is more common to see in the later. Download image synchronously To download an image from a URL in K</description><pubDate>Mon, 20 Feb 2023 18:00:59 GMT</pubDate></item><item><title>Encode URL in Kotlin</title><link>https://needone.app/blog/encode-url-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/encode-url-in-kotlin/</guid><description>In Kotlin, you can use the URLEncoder class to encode a URL string so that it can be safely transmitted over the internet. The URLEncoder class is part of the Java standard library</description><pubDate>Wed, 01 Feb 2023 16:00:20 GMT</pubDate></item><item><title>Encode URL in Swift</title><link>https://needone.app/blog/encode-url-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/encode-url-in-swift/</guid><description>It is quite common to see that we can correctly set up the HTTP header, token, body and POST/GET methods in our iOS code, but we still can&apos;t get the right response. Here is an erro</description><pubDate>Wed, 25 Jan 2023 16:00:47 GMT</pubDate></item><item><title>Equatable and Comparable in Swift</title><link>https://needone.app/blog/equatable-and-comparable-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/equatable-and-comparable-in-swift/</guid><description>It is quite common that we are required to compare two custom objects in Swift, luckily Swift has provided some built-in protocol allows us to do this in a &quot;swift&quot; way. Equatable I</description><pubDate>Tue, 13 Dec 2022 21:14:42 GMT</pubDate></item><item><title>Export IPA file from Xcode and install on your mobile</title><link>https://needone.app/blog/export-ipa-file-from-xcode-and-install-on-your-mobile/</link><guid isPermaLink="true">https://needone.app/blog/export-ipa-file-from-xcode-and-install-on-your-mobile/</guid><description>Generate ipa from swift xcode, install ipa to mobile device</description><pubDate>Thu, 07 Feb 2019 06:55:37 GMT</pubDate></item><item><title>Extract the debug or crash log from iPhone/iPad</title><link>https://needone.app/blog/extract-the-debug-or-crash-log-from-iphone-ipad/</link><guid isPermaLink="true">https://needone.app/blog/extract-the-debug-or-crash-log-from-iphone-ipad/</guid><description>For Real devices Open Settings app Tap Privacy Tap Analytics &amp; Improvements Tap Analytics Data There might be quite a lot of Data, so try to pinpoint the possible one using date: 6</description><pubDate>Wed, 05 Aug 2020 05:35:54 GMT</pubDate></item><item><title>Fastlane Practise with Android and iOS (with examples)</title><link>https://needone.app/blog/fastlane-practise-with-android-and-ios-with-examples/</link><guid isPermaLink="true">https://needone.app/blog/fastlane-practise-with-android-and-ios-with-examples/</guid><description>Fastlane Features &quot;The easiest way to build and release mobile apps&quot;. Which handles the majority of the manual works Fastlane has the following features: FREE Build Alpha/Beta/Prod</description><pubDate>Thu, 05 Jul 2018 22:05:00 GMT</pubDate></item><item><title>Format currency in Swift</title><link>https://needone.app/blog/format-currency-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/format-currency-in-swift/</guid><description>Recently I have done quite an amount of work on formatting currency in Swift project, here are some tricks on how to format number in Swift: Format currency with auto currency symb</description><pubDate>Mon, 13 Feb 2023 18:00:56 GMT</pubDate></item><item><title>Generic type vs. Any in Swift</title><link>https://needone.app/blog/generic-type-vs-any-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/generic-type-vs-any-in-swift/</guid><description>Generic type In Swift, a generic type is a placeholder for a specific type that is specified when the generic type is used. A generic type allows you to write flexible and reusable</description><pubDate>Mon, 06 Mar 2023 18:00:09 GMT</pubDate></item><item><title>Get and Set a State in React</title><link>https://needone.app/blog/get-and-set-a-state-in-react/</link><guid isPermaLink="true">https://needone.app/blog/get-and-set-a-state-in-react/</guid><description>State is a JavaScript object that lives inside each of the component, We can aaccess it via this.state . Unlike JQuery and Backbone , DOM is manipulated indirectly in React , which</description><pubDate>Thu, 10 Nov 2016 22:35:00 GMT</pubDate></item><item><title>Get the current week in Swift</title><link>https://needone.app/blog/get-current-week-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/get-current-week-in-swift/</guid><description>To get the current week in Swift 5, you can use the Calendar and DateComponents classes to calculate the week number for the current date. Here&apos;s an example of how you might do thi</description><pubDate>Wed, 08 Feb 2023 18:00:39 GMT</pubDate></item><item><title>Get location coordinates using CLLocationManager in Swift</title><link>https://needone.app/blog/get-location-coordinates-using-cllocationmanager-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/get-location-coordinates-using-cllocationmanager-in-swift/</guid><description>To get the location (latitude and longitude) of a device in Swift, you can use the Core Location framework, which is an official library from Apple. Only 2 steps are required, so i</description><pubDate>Fri, 27 Jan 2023 16:00:14 GMT</pubDate></item><item><title>Get Start with RabbitMQ</title><link>https://needone.app/blog/get-start-with-rabbitmq/</link><guid isPermaLink="true">https://needone.app/blog/get-start-with-rabbitmq/</guid><description>RabbitMQ is an open source &amp; enterprise level messsage broker using AMQP protocal. The AMQP protocol is designed for asychronization and message dispatch. RabbitMQ can be used in t</description><pubDate>Thu, 21 Sep 2017 00:11:00 GMT</pubDate></item><item><title>Git Merge vs Git Rebase</title><link>https://needone.app/blog/git-merge-vs-git-rebase/</link><guid isPermaLink="true">https://needone.app/blog/git-merge-vs-git-rebase/</guid><description>TLDR Both git rebase and git merge are used to synchronise changes between branches. The difference is git rebase will revise the commits but keep a clean organised history, while</description><pubDate>Tue, 12 Jan 2021 20:34:16 GMT</pubDate></item><item><title>Have you tried XCTUnwrap before?</title><link>https://needone.app/blog/have-you-tried-xctunwrap-before/</link><guid isPermaLink="true">https://needone.app/blog/have-you-tried-xctunwrap-before/</guid><description>What is XCTUnwrap and how to use it to help you effectively while you are doing the unit test? XCTUnwrap is a utility function that is used in unit tests to unwrap optional values.</description><pubDate>Wed, 28 Dec 2022 19:54:04 GMT</pubDate></item><item><title>How to auto-sizing text size in Android</title><link>https://needone.app/blog/how-to-auto-just-text-size-in-android/</link><guid isPermaLink="true">https://needone.app/blog/how-to-auto-just-text-size-in-android/</guid><description>Most of the time we can display the text as follows: &amp;lt;TextView android:id=&quot;@+id/text_question_no&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; androi</description><pubDate>Sat, 10 Oct 2020 23:15:31 GMT</pubDate></item><item><title>How to check whether a mobile device is muted or not on iPhone/iPad</title><link>https://needone.app/blog/how-to-determine-whether-a-mobile-device-is-muted-or-not-on-iphone-ipad/</link><guid isPermaLink="true">https://needone.app/blog/how-to-determine-whether-a-mobile-device-is-muted-or-not-on-iphone-ipad/</guid><description>On iOS devices, there are mainly two types of sounds: Ringtones and reminders: Including system sounds such as phone calls, text messages, notifications (also including key tones,</description><pubDate>Tue, 23 Feb 2021 11:55:43 GMT</pubDate></item><item><title>How to do a deep cleaning for pod</title><link>https://needone.app/blog/how-to-do-a-deep-cleaning-for-pod/</link><guid isPermaLink="true">https://needone.app/blog/how-to-do-a-deep-cleaning-for-pod/</guid><description>If you are like me, the project is still using the pod to manage the libraries and frameworks. We need to clean the projects from time to time. The following command can help us to</description><pubDate>Wed, 19 Jul 2023 00:25:42 GMT</pubDate></item><item><title>How to enable iMessage on your Android devices for free</title><link>https://needone.app/blog/how-to-enable-imessage-on-your-android-devices-for-free/</link><guid isPermaLink="true">https://needone.app/blog/how-to-enable-imessage-on-your-android-devices-for-free/</guid><description>This article demonstrates how to connect iMessage service to your Android phone/pad so that you can contact your iPhone friends freely from now on. To finish the article will take</description><pubDate>Mon, 09 Nov 2020 20:22:31 GMT</pubDate></item><item><title>How to find your Play Store ID</title><link>https://needone.app/blog/how-to-find-your-google-play-id/</link><guid isPermaLink="true">https://needone.app/blog/how-to-find-your-google-play-id/</guid><description>For most Android phone users, Play Store is already installed on the phone already. It is a portal for you to download and install new apps with just few taps. The icon of the Play</description><pubDate>Thu, 16 Apr 2020 00:07:03 GMT</pubDate></item><item><title>How to make a custom view in Kotlin</title><link>https://needone.app/blog/how-to-make-a-custom-view-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/how-to-make-a-custom-view-in-kotlin/</guid><description>To create a custom view in Kotlin, you can create a new subclass of View and override the onDraw method to draw the view&apos;s content. Then, you can add any additional properties or b</description><pubDate>Wed, 11 Jan 2023 20:13:39 GMT</pubDate></item><item><title>How to use Swift Package Manager</title><link>https://needone.app/blog/how-to-use-swift-package/</link><guid isPermaLink="true">https://needone.app/blog/how-to-use-swift-package/</guid><description>What is Swift Package? According to Apple&apos;s doc: Swift packages are reusable components of Swift, Objective-C, Objective-C++, C, or C++ code that developers can use in their projec</description><pubDate>Fri, 30 Oct 2020 21:46:24 GMT</pubDate></item><item><title>How to Use SwiftUI and UIKit Together</title><link>https://needone.app/blog/how-to-use-swiftui-and-uikit-together/</link><guid isPermaLink="true">https://needone.app/blog/how-to-use-swiftui-and-uikit-together/</guid><description>SwiftUI is the modern way to build interfaces on Apple platforms, but most production apps still rely on UIKit. The good news is that you do not need a full rewrite. Apple designed</description><pubDate>Thu, 08 Jan 2026 21:21:12 GMT</pubDate></item><item><title>HTTP Encoding</title><link>https://needone.app/blog/http-encoding/</link><guid isPermaLink="true">https://needone.app/blog/http-encoding/</guid><description>HTTP encoding, also known as percent-encoding or URL encoding, is a way of encoding special characters in URLs and other HTTP data, such as headers and body content. HTTP encoding</description><pubDate>Mon, 30 Jan 2023 09:31:09 GMT</pubDate></item><item><title>indirect enum in Swift</title><link>https://needone.app/blog/indirect-enums-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/indirect-enums-in-swift/</guid><description>An indirect enum in Swift is an enum that can be used to define a recursive data structure. This means that one or more of its cases can refer to an instance of the same enum type.</description><pubDate>Fri, 03 Mar 2023 18:30:50 GMT</pubDate></item><item><title>Init vs Convenience init in Swift</title><link>https://needone.app/blog/init-vs-convenience-init-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/init-vs-convenience-init-in-swift/</guid><description>Initializers, also known as constructors in other programming languages, have two types: Designated init and Convenience init . They are used to initialize properties or customize</description><pubDate>Mon, 15 Feb 2021 12:12:23 GMT</pubDate></item><item><title>Install specific iOS beta on simulator</title><link>https://needone.app/blog/install-ios-beta-in-xcode-for-simulators/</link><guid isPermaLink="true">https://needone.app/blog/install-ios-beta-in-xcode-for-simulators/</guid><description>Apple release the new iOS SDK every day, as the developer, we want to test our apps on those new SDK before they are officially released. For example, we want to have the iOS 17 be</description><pubDate>Fri, 15 Sep 2023 21:13:59 GMT</pubDate></item><item><title>Instance method vs. Static method vs. Class method in Python</title><link>https://needone.app/blog/instance-method-vs-static-method-vs-class-method-in-python/</link><guid isPermaLink="true">https://needone.app/blog/instance-method-vs-static-method-vs-class-method-in-python/</guid><description>In a python class, there are three kinds of methods: Instance method Static method Class method Example explained Look at the following code, have a test for yourself, what are the</description><pubDate>Thu, 29 Mar 2018 23:37:00 GMT</pubDate></item><item><title>Introduction to Coroutine in Kotlin</title><link>https://needone.app/blog/introduction-to-coroutine-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/introduction-to-coroutine-in-kotlin/</guid><description>A Coroutine is a lightweight thread of execution that can be suspended and resumed later. There are already many articles or topics covering this but this post is different, it is</description><pubDate>Mon, 16 Jan 2023 16:00:02 GMT</pubDate></item><item><title>iOS14: How to show all your photos on WhatsApp</title><link>https://needone.app/blog/ios14-how-to-show-all-your-photos-on-whatsapp/</link><guid isPermaLink="true">https://needone.app/blog/ios14-how-to-show-all-your-photos-on-whatsapp/</guid><description>iOS14: How to show all your photos on WhatsApp, instagram, facebook</description><pubDate>Fri, 25 Sep 2020 06:14:14 GMT</pubDate></item><item><title>[Tips] iPhone/iPad: How to get Free apps through TestFlight</title><link>https://needone.app/blog/iphone-ipad-how-to-get-free-apps-through-testflight/</link><guid isPermaLink="true">https://needone.app/blog/iphone-ipad-how-to-get-free-apps-through-testflight/</guid><description>TestFlight is an beta testing app/service offered by Apple, which you can download apps from the app developer and use it for FREE. Only 2 steps are needed: Step 1 : Download TestF</description><pubDate>Thu, 11 Jun 2020 07:20:40 GMT</pubDate></item><item><title>iPhone/iPad Redeem promo code to get free App in 2022</title><link>https://needone.app/blog/iphone-ipad-redeem-free-promo-code/</link><guid isPermaLink="true">https://needone.app/blog/iphone-ipad-redeem-free-promo-code/</guid><description>This will happen when developers decides to give out some free apps, which sometimes you will see the promo code like this EAJXJEXL7MJH . As many of you might know how to redeem th</description><pubDate>Thu, 31 Dec 2020 22:15:00 GMT</pubDate></item><item><title>Iterator and Generator in ES6</title><link>https://needone.app/blog/iterator-and-generator-in-es6/</link><guid isPermaLink="true">https://needone.app/blog/iterator-and-generator-in-es6/</guid><description>Iterator and Generator are commonly used features in ES6. In this post, we will walk through the key features of iterator and generator in depth. Iterator In JavaScript, an object</description><pubDate>Tue, 11 Jul 2017 22:39:00 GMT</pubDate></item><item><title>Key-Value Coding and Key-Value Observing in Objective-C</title><link>https://needone.app/blog/key-value-coding-and-key-value-observing-in-objective-c/</link><guid isPermaLink="true">https://needone.app/blog/key-value-coding-and-key-value-observing-in-objective-c/</guid><description>What is KVO/KVC KVC(Key-Value Coding) is a coding style which coming from Functional Programming , KVO(Key-Vlaue Observing) is the technology that underlies Cocoa Bindings, and it</description><pubDate>Thu, 16 Nov 2017 23:32:00 GMT</pubDate></item><item><title>Keyword Lazy in Swift</title><link>https://needone.app/blog/keyword-lazy-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/keyword-lazy-in-swift/</guid><description>lazy variables are variables will be computed until accessing. In other words, lazy variables won&apos;t have the real value until get called/used. As lazy variables can be re-assigned,</description><pubDate>Thu, 31 Dec 2020 00:54:28 GMT</pubDate></item><item><title>Kids Smart Pad</title><link>https://needone.app/blog/kids-smart-pad/</link><guid isPermaLink="true">https://needone.app/blog/kids-smart-pad/</guid><description>Kids Smart Pad</description><pubDate>Thu, 05 Sep 2019 01:34:00 GMT</pubDate></item><item><title>Kotlin `lazy` vs `lateinit`: When to Use Each</title><link>https://needone.app/blog/kotlin-lazy-vs-lateinit-when-to-use-each/</link><guid isPermaLink="true">https://needone.app/blog/kotlin-lazy-vs-lateinit-when-to-use-each/</guid><description>Kotlin lazy vs lateinit : When to Use Each Kotlin gives you two common ways to defer initialization of a property: lazy and lateinit . They look similar on the surface, but they so</description><pubDate>Tue, 30 Dec 2025 20:20:01 GMT</pubDate></item><item><title>Lazy in Kotlin</title><link>https://needone.app/blog/lazy-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/lazy-in-kotlin/</guid><description>In the Kotlin programming language, the term &quot;lazy&quot; typically refers to a type of property or variable that is only initialized when it is first accessed, rather than when the cont</description><pubDate>Fri, 10 Feb 2023 18:00:18 GMT</pubDate></item><item><title>Load local html resource on Android using webView</title><link>https://needone.app/blog/load-local-html-resource-on-android-using-webview/</link><guid isPermaLink="true">https://needone.app/blog/load-local-html-resource-on-android-using-webview/</guid><description>Local html and sources are necessary when you try to show an error page dealing with situations such as 404 , 500 and etc errors happened on remote server. And here is how: First,</description><pubDate>Mon, 27 Aug 2018 21:54:00 GMT</pubDate></item><item><title>Manage both Python2 and Python3 on your Mac</title><link>https://needone.app/blog/manage-both-python2-and-python3-on-your-mac/</link><guid isPermaLink="true">https://needone.app/blog/manage-both-python2-and-python3-on-your-mac/</guid><description>Step 1: Install Python3 Use brew install python to install python3 on the mac, current version is Python 3.6.5 . If your mac has a python2 already, brew will ask for an upgrade, wh</description><pubDate>Sun, 10 Jun 2018 22:12:00 GMT</pubDate></item><item><title>Method Chaining in Objective-C and how to make your own</title><link>https://needone.app/blog/method-chaining-in-objective-c-and-make-your-own-chaining-methods-to-create-a-calculator/</link><guid isPermaLink="true">https://needone.app/blog/method-chaining-in-objective-c-and-make-your-own-chaining-methods-to-create-a-calculator/</guid><description>When I was using the Masonry, I was shocked by author’s thoughts on bring Functional Programming to objective-c, which present a clean and concise way on developing. Normally a cha</description><pubDate>Thu, 01 Jun 2017 11:12:00 GMT</pubDate></item><item><title>MySQL: ERROR 1071 (42000) at line: Specified key was too long; max key length is 767 bytes</title><link>https://needone.app/blog/mysql-error-1071-42000-at-line-specified-key-was-too-long-max-key-length-is-767-bytes/</link><guid isPermaLink="true">https://needone.app/blog/mysql-error-1071-42000-at-line-specified-key-was-too-long-max-key-length-is-767-bytes/</guid><description>When I was doing the development with a recent project, I found out this err: Error: ERROR 1071 (42000) at line 50: Specified key was too long; max key length is 767 bytes See here</description><pubDate>Tue, 05 Jun 2018 23:48:00 GMT</pubDate></item><item><title>Nested class in Swift</title><link>https://needone.app/blog/nested-class-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/nested-class-in-swift/</guid><description>A nested class in Swift is a class that is defined within another class. Some key features: Nested class have access to local variables or constants of the outer class unless these</description><pubDate>Mon, 17 Jul 2023 00:31:06 GMT</pubDate></item><item><title>Nested method in Swift</title><link>https://needone.app/blog/nested-method-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/nested-method-in-swift/</guid><description>A nested method in Swift is a method or function that is defined within another function. Nested functions have the following characteristics: They have access to all variables and</description><pubDate>Sat, 14 Jan 2023 11:43:22 GMT</pubDate></item><item><title>Non-blocking in Kotlin Coroutines</title><link>https://needone.app/blog/non-blocking-in-kotlin-coroutines/</link><guid isPermaLink="true">https://needone.app/blog/non-blocking-in-kotlin-coroutines/</guid><description>Kotlin Coroutines Table Content 1, Introduction to Coroutine in Kotlin 2, Non-blocking in Kotlin Coroutines (This article) 3, Start and Suspend a Coroutine in Kotlin (incoming this</description><pubDate>Wed, 18 Jan 2023 19:43:07 GMT</pubDate></item><item><title>OnTriggerEnter2D v.s. OnCollisionEnter2D</title><link>https://needone.app/blog/ontriggerenter2d-v-s-oncollisionenter2d/</link><guid isPermaLink="true">https://needone.app/blog/ontriggerenter2d-v-s-oncollisionenter2d/</guid><description>OnCollisionEnter2D : Some collision really happened, means two objects collide with each other. OnTriggerEnter2D : Collision not really happened when you set up Is Trigger is true.</description><pubDate>Sun, 14 Oct 2018 21:36:00 GMT</pubDate></item><item><title>OpenSource: react-appstore-button module</title><link>https://needone.app/blog/opensource-react-appstore-button-module/</link><guid isPermaLink="true">https://needone.app/blog/opensource-react-appstore-button-module/</guid><description>react-appstore-button version: 0.0.9 NPM URL: https://www.npmjs.com/package/react-appstore-button Github URL: https://github.com/arkilis/react-AppStore-Button What is this? An Reac</description><pubDate>Thu, 03 Aug 2017 00:03:00 GMT</pubDate></item><item><title>PLIST file in iOS</title><link>https://needone.app/blog/plist-file-in-ios/</link><guid isPermaLink="true">https://needone.app/blog/plist-file-in-ios/</guid><description>A Property List (PLIST) file is a file format used by macOS and iOS to store serialized data. It is often used to store data such as user preferences, settings, and other informati</description><pubDate>Sat, 24 Dec 2022 21:12:32 GMT</pubDate></item><item><title>Popup Custom View in UIKit</title><link>https://needone.app/blog/popup-custom-view-in-uikit/</link><guid isPermaLink="true">https://needone.app/blog/popup-custom-view-in-uikit/</guid><description>In UIKit, popup mainly can be: popup an alert using UIAlertController popup action sheet using UIAlertController . For more details, check this: Present action sheet in UIKit and S</description><pubDate>Mon, 09 Jan 2023 20:21:00 GMT</pubDate></item><item><title>Popup alert in Swift</title><link>https://needone.app/blog/popup-dialog-alert-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/popup-dialog-alert-in-swift/</guid><description>As mentioned in the other article: Popup Custom View in UIKit : popup mainly can be: popup an alert using UIAlertController popup action sheet using UIAlertController. For more det</description><pubDate>Wed, 11 Jan 2023 21:00:33 GMT</pubDate></item><item><title>Present action sheet in UIKit and SwiftUI</title><link>https://needone.app/blog/present-action-sheet-in-swift-uikit-swiftui/</link><guid isPermaLink="true">https://needone.app/blog/present-action-sheet-in-swift-uikit-swiftui/</guid><description>An action sheet is a component that displays a set of choices to the user in a modal format. UIKit In iOS, you can create an action sheet using a UIAlertController with the .action</description><pubDate>Thu, 05 Jan 2023 20:34:13 GMT</pubDate></item><item><title>Preview in SwiftUI</title><link>https://needone.app/blog/preview-in-swiftui/</link><guid isPermaLink="true">https://needone.app/blog/preview-in-swiftui/</guid><description>Once you have finished the SwiftUI code, it is always a good idea to preview it before implement any function code. Luckily, such feature is natively supported by SwiftUI - Preview</description><pubDate>Fri, 18 Dec 2020 22:02:17 GMT</pubDate></item><item><title>Property in Swift</title><link>https://needone.app/blog/property-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/property-in-swift/</guid><description>Unlike other programming languages, there are three types properties in Swift. Stored Properties They are constants or variables of a class, and part of the class instances that us</description><pubDate>Thu, 25 Feb 2021 11:53:01 GMT</pubDate></item><item><title>Create Property Wrapper in Swift</title><link>https://needone.app/blog/property-wrappers-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/property-wrappers-in-swift/</guid><description>What is Property Wrapper Property wrapper are a language feature that allows you to wrap a piece of code around a property in Swift world, which can help us to add additional behav</description><pubDate>Mon, 19 Dec 2022 21:06:01 GMT</pubDate></item><item><title>Python package importing explained</title><link>https://needone.app/blog/python-importing-explained/</link><guid isPermaLink="true">https://needone.app/blog/python-importing-explained/</guid><description>Python is a powerful and elegant language which makes people obsessed into it (such as me). However, many of the python users are still confused by two question: package importing</description><pubDate>Sat, 05 Jan 2019 22:32:25 GMT</pubDate></item><item><title>Python Teltra SMS SDK</title><link>https://needone.app/blog/python-teltra-sms-sdk/</link><guid isPermaLink="true">https://needone.app/blog/python-teltra-sms-sdk/</guid><description>telstra-sms-sdk A fully tested Python SDK allow you to send sms in a more easy way! Current version: 0.0.7 Support Python version : &amp;gt;=python 2.6 (not python3) If you have any qu</description><pubDate>Fri, 31 Mar 2017 23:10:00 GMT</pubDate></item><item><title>RunBlocking in Kotlin Coroutine</title><link>https://needone.app/blog/runblocking-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/runblocking-in-kotlin/</guid><description>In previous post, we have gone through most of the key concepts and methods in Coroutine: Kotlin Coroutines Table Content 1, Introduction to Coroutine in Kotlin 2, Non-blocking in</description><pubDate>Wed, 15 Feb 2023 18:00:46 GMT</pubDate></item><item><title>2 hours to master RxSwift - Part 1</title><link>https://needone.app/blog/rxswift-tutorial-part-1/</link><guid isPermaLink="true">https://needone.app/blog/rxswift-tutorial-part-1/</guid><description>a simple introudction on rxswift, including what is rxswift, how to use it and a quick example (with swift code) on demo that.</description><pubDate>Mon, 13 Mar 2023 19:34:41 GMT</pubDate></item><item><title>2 hours to master RxSwift - Part 2</title><link>https://needone.app/blog/rxswift-tutorial-part-2/</link><guid isPermaLink="true">https://needone.app/blog/rxswift-tutorial-part-2/</guid><description>In this article we will dig a bit more depth in some core concepts on 2 hours to master RxSwift - Part 1 . Section 1: Observable Like mentioned in the last article, an Observable i</description><pubDate>Mon, 01 May 2023 04:49:30 GMT</pubDate></item><item><title>2 hours to master RxSwift - Part 3</title><link>https://needone.app/blog/rxswift-tutorial-part-3/</link><guid isPermaLink="true">https://needone.app/blog/rxswift-tutorial-part-3/</guid><description>Introduction In the previous post: 2 hours to master RxSwift - Part 1 (needone.app) and 2 hours to master RxSwift - Part 2 (needone.app) , we get to know the the core concept behin</description><pubDate>Mon, 10 Apr 2023 19:50:22 GMT</pubDate></item><item><title>SceneDelegate</title><link>https://needone.app/blog/scenedelegate-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/scenedelegate-in-swift/</guid><description>In iOS, the SceneDelegate is a class that is responsible for managing the scenes in your app. A scene is a discrete unit of your app&apos;s user interface, such as a window or tab. The</description><pubDate>Mon, 06 Feb 2023 18:00:00 GMT</pubDate></item><item><title>Setup Visual Studio Code for Unity on Mac 2020 (Updated in 2021)</title><link>https://needone.app/blog/setup-visual-studio-code-for-unity-on-mac-2020/</link><guid isPermaLink="true">https://needone.app/blog/setup-visual-studio-code-for-unity-on-mac-2020/</guid><description>There are tons of articles online tells us it is 2020, we should use the Visual Studio code, which is a good coding tool (or IDE) with numerous extensions. This article is the comp</description><pubDate>Wed, 17 Jun 2020 21:26:18 GMT</pubDate></item><item><title>Singleton in Kotlin</title><link>https://needone.app/blog/singleton-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/singleton-in-kotlin/</guid><description>In the Kotlin programming language, a singleton is a design pattern that allows you to create only one instance of a class. This is useful when you want to make sure that there is</description><pubDate>Fri, 10 Mar 2023 18:00:44 GMT</pubDate></item><item><title>Singleton in Objective-C/Swift</title><link>https://needone.app/blog/singleton-in-objective-c-swift/</link><guid isPermaLink="true">https://needone.app/blog/singleton-in-objective-c-swift/</guid><description>What is behind the Singleton? Singleton: Instantiation of a class to ONLY one object Features of Singleton: One class only can have only one instance; It must can create this insta</description><pubDate>Fri, 10 Nov 2017 23:30:00 GMT</pubDate></item><item><title>Sort custom objects by property in Swift</title><link>https://needone.app/blog/sort-custom-objects-by-property-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/sort-custom-objects-by-property-in-swift/</guid><description>Many of us have met the situation that we have an array/list of custom objects, and we want them can be sorted in a specific order. For example, we are have a group of people, and</description><pubDate>Fri, 17 Feb 2023 18:00:16 GMT</pubDate></item><item><title>Start and Suspend a Coroutine in Kotlin</title><link>https://needone.app/blog/start-and-suspend-a-coroutine-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/start-and-suspend-a-coroutine-in-kotlin/</guid><description>Kotlin Coroutines Table Content 1, Introduction to Coroutine in Kotlin 2, Non-blocking in Kotlin Coroutines 3, Start and Suspend a Coroutine in Kotlin (This article) With the previ</description><pubDate>Fri, 20 Jan 2023 16:00:09 GMT</pubDate></item><item><title>Static Library, Dynamic Library and Frameworks in iOS</title><link>https://needone.app/blog/static-library-dynamic-library-and-frameworks-in-ios/</link><guid isPermaLink="true">https://needone.app/blog/static-library-dynamic-library-and-frameworks-in-ios/</guid><description>What you can get from this article: What are Static Library and Dynamic Library not just in iOS How do they work (in genertal) Some concepts about library Reduce coupling: if you w</description><pubDate>Fri, 20 May 2016 21:19:00 GMT</pubDate></item><item><title>🚀 Swift 6 Concurrency: Mastering @isolated(any) and #isolation</title><link>https://needone.app/blog/swift-6-concurrency-mastering-isolated-any-and-isolation/</link><guid isPermaLink="true">https://needone.app/blog/swift-6-concurrency-mastering-isolated-any-and-isolation/</guid><description>Swift 6 introduces a suite of powerful new concurrency features and keywords. While many of these may not see daily use, encountering specific edge cases without a solid grasp of t</description><pubDate>Wed, 04 Mar 2026 21:09:17 GMT</pubDate></item><item><title>Complete guide on custom class/struct comparison</title><link>https://needone.app/blog/swift-compare-custom-class-struct/</link><guid isPermaLink="true">https://needone.app/blog/swift-compare-custom-class-struct/</guid><description>swift compare custom class or custom struct</description><pubDate>Sat, 15 Aug 2020 00:17:12 GMT</pubDate></item><item><title>SwiftLint: Writing good quality code in Swift</title><link>https://needone.app/blog/swiftlint/</link><guid isPermaLink="true">https://needone.app/blog/swiftlint/</guid><description>SwiftLint is a programming guide tool which can automatically check the code quality with certain rules such as https://github.com/github/swift-style-guide . The article will cover</description><pubDate>Fri, 16 Oct 2020 21:08:37 GMT</pubDate></item><item><title>[iOS] Trivia ONE</title><link>https://needone.app/blog/trivia-one/</link><guid isPermaLink="true">https://needone.app/blog/trivia-one/</guid><description>Play with more than 3000 quizzes and questions, challenge yourself with all kinds of topics, General knowledges, history, vehicles, music, movies, sports, TV, geography, science, nature, and much more.</description><pubDate>Thu, 16 May 2019 09:54:05 GMT</pubDate></item><item><title>Type safe in programming language</title><link>https://needone.app/blog/type-safe-in-swift-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/type-safe-in-swift-kotlin/</guid><description>Introduction Type safety in programming languages refers to the concept that variables and data structures are strongly typed and cannot be assigned values of different types . Thi</description><pubDate>Thu, 08 Dec 2022 20:59:07 GMT</pubDate></item><item><title>UIKit vs. SwiftUI - A general discussion</title><link>https://needone.app/blog/uikit-vs-swiftui-general-discussion/</link><guid isPermaLink="true">https://needone.app/blog/uikit-vs-swiftui-general-discussion/</guid><description>UIKit and SwiftUI are two different frameworks for building user interfaces on Apple platforms. UIKit UIKit is the older of the two frameworks, and has been around since the early</description><pubDate>Mon, 27 Feb 2023 18:49:42 GMT</pubDate></item><item><title>UITraitCollection</title><link>https://needone.app/blog/uitraitcollection-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/uitraitcollection-in-swift/</guid><description>UITraitCollection is a class in the UIKit framework that defines a set of interface traits that specify the environment in which your app is running. These traits include the devic</description><pubDate>Wed, 01 Mar 2023 18:00:28 GMT</pubDate></item><item><title>Undo the most recent local commit(s) in Git</title><link>https://needone.app/blog/undo-the-most-recent-local-commit-s-in-git/</link><guid isPermaLink="true">https://needone.app/blog/undo-the-most-recent-local-commit-s-in-git/</guid><description>Undo the most recent local commit(s) in Git</description><pubDate>Tue, 09 Jun 2020 21:54:53 GMT</pubDate></item><item><title>Unity: Are you familiar with Awake(), OnEnable(), Start(), Update(),FixedUpdate() and OnDestroy()</title><link>https://needone.app/blog/unity-are-you-familiar-with-awake-onenable-start-update-fixedupdate-and-ondestory/</link><guid isPermaLink="true">https://needone.app/blog/unity-are-you-familiar-with-awake-onenable-start-update-fixedupdate-and-ondestory/</guid><description>Unity: Are you familiar with Awake(), OnEnable(), Start(), Update(),FixedUpdate() and OnDestory()</description><pubDate>Mon, 15 Jun 2020 06:57:43 GMT</pubDate></item><item><title>Unity: Real example shows the difference of  three Canvas UI Scale Modes</title><link>https://needone.app/blog/unity-example-shows-difference-of-canvas-ui-scale-modes/</link><guid isPermaLink="true">https://needone.app/blog/unity-example-shows-difference-of-canvas-ui-scale-modes/</guid><description>Unity: Real example shows the difference of  three Canvas UI Scale Modes, Constant Pixel Size, Scale With Screen Size and Constant Physical Size</description><pubDate>Tue, 30 Jun 2020 22:23:12 GMT</pubDate></item><item><title>Unity: How to change the default or entry animation for an animator</title><link>https://needone.app/blog/unity-how-to-change-the-default-or-entry-animation-for-an-animator/</link><guid isPermaLink="true">https://needone.app/blog/unity-how-to-change-the-default-or-entry-animation-for-an-animator/</guid><description>When creating a new animation for a game object, by default in Unity, the first animation your created is the entry animation for a game object. Suppose we have two animation for a</description><pubDate>Sat, 11 Jul 2020 07:42:16 GMT</pubDate></item><item><title>Unity: Should I choose Kinematic, Static or Dynamic for Rigidbody 2D body type?</title><link>https://needone.app/blog/unity-should-i-choose-kinematic-static-or-dynamic-for-rigidbody-2d-body-type/</link><guid isPermaLink="true">https://needone.app/blog/unity-should-i-choose-kinematic-static-or-dynamic-for-rigidbody-2d-body-type/</guid><description>When dealing with Rigidbody 2D, there are three key body types which determines how a game object move and react to collision. This post is the complete guide on how and when to us</description><pubDate>Sun, 21 Jun 2020 00:52:09 GMT</pubDate></item><item><title>Use Extension in Swift</title><link>https://needone.app/blog/use-extension-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/use-extension-in-swift/</guid><description>Extension is a great feature in Swift, which can help us to create helper/utility variables and method, and etc. Use extension to conform protocols It is quite common to use protoc</description><pubDate>Fri, 26 Feb 2021 21:45:13 GMT</pubDate></item><item><title>Use keystore to store your sensitive in Kotlin</title><link>https://needone.app/blog/use-keystore-to-store-your-sensitive-in-kotlin/</link><guid isPermaLink="true">https://needone.app/blog/use-keystore-to-store-your-sensitive-in-kotlin/</guid><description>The keystore is a secure storage location in Android that is used to store encryption keys, digital certificates, and other sensitive information. The keystore is encrypted with a</description><pubDate>Wed, 08 Mar 2023 18:00:18 GMT</pubDate></item><item><title>Use openssl to create public key and private key</title><link>https://needone.app/blog/use-openssl-to-create-public-key-and-private-key/</link><guid isPermaLink="true">https://needone.app/blog/use-openssl-to-create-public-key-and-private-key/</guid><description>Generally speaking, currently digital encryption methods can be divided into two main categories, symmetric encryption and asymmetric encryption . For symmetric encryption , the sa</description><pubDate>Sun, 07 Mar 2021 12:20:32 GMT</pubDate></item><item><title>@AppStorage vs. @UserDefault in SwiftUI</title><link>https://needone.app/blog/userdefault-vs-appstorage-in-swiftui/</link><guid isPermaLink="true">https://needone.app/blog/userdefault-vs-appstorage-in-swiftui/</guid><description>Both the @AppStorage and @UserDefault property wrappers in SwiftUI allow you to store and retrieve data using UserDefaults. However, there are a few key differences between the two</description><pubDate>Mon, 30 Jan 2023 16:00:20 GMT</pubDate></item><item><title>VIP Architecture in Swift with easy explanation</title><link>https://needone.app/blog/vip-architecture-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/vip-architecture-in-swift/</guid><description>Recently I joined a project where the architecture follows the Clean-Swift VIP Pattern. This article is an overview and some thoughts from a mobile developer’s perspective who have</description><pubDate>Sat, 24 Oct 2020 22:48:38 GMT</pubDate></item><item><title>WeApp-jandan 微信小程序–煎蛋</title><link>https://needone.app/blog/weapp-jandan/</link><guid isPermaLink="true">https://needone.app/blog/weapp-jandan/</guid><description>1. 效果图 (Final Screenshot) 2. 功能 (Features)： 无聊图 段子 妹子图 （这个是必须的）Updated: 这个已经被煎蛋取消了 投票 Github 地址 : https://github.com/arkilis/weapp-jandan 3. 声明 (Disclaim) 真机调试不可用，因为，煎蛋的服务器没有正确地配置S</description><pubDate>Sat, 01 Apr 2017 23:04:00 GMT</pubDate></item><item><title>What is Bitcode in iOS</title><link>https://needone.app/blog/what-is-bitcode-in-ios/</link><guid isPermaLink="true">https://needone.app/blog/what-is-bitcode-in-ios/</guid><description>You may compile and build iOS app using Swift and/or Objective-C every day, and you&apos;ve probably you heard of Bitcode multiple times. So what exactly is the Bitcode , as some of you</description><pubDate>Wed, 14 Oct 2020 20:25:48 GMT</pubDate></item><item><title>What is keyword defer in Swift</title><link>https://needone.app/blog/what-is-keyword-defer-in-swift/</link><guid isPermaLink="true">https://needone.app/blog/what-is-keyword-defer-in-swift/</guid><description>The defer keyword in Swift is used to execute a block of code at the end of the current scope, regardless of how the scope is exited. The defer block is executed after any return s</description><pubDate>Mon, 02 Jan 2023 22:17:53 GMT</pubDate></item><item><title>Which `Context` Should You Use in Android?</title><link>https://needone.app/blog/which-context-should-you-use-in-android/</link><guid isPermaLink="true">https://needone.app/blog/which-context-should-you-use-in-android/</guid><description>Which Context Should You Use in Android? Context is everywhere in Android, but choosing the wrong one can lead to memory leaks, broken UI, or hard‑to‑debug crashes. This article ex</description><pubDate>Wed, 04 Mar 2026 21:12:50 GMT</pubDate></item><item><title>Wordo - Spell to score</title><link>https://needone.app/blog/wordo/</link><guid isPermaLink="true">https://needone.app/blog/wordo/</guid><description>I heard you are good at words and spelling, what about Wordo? A tiny game of finding words with few letters, share your score with your families and friends. Be the top 1. This is</description><pubDate>Fri, 03 Jan 2020 05:16:46 GMT</pubDate></item><item><title>Workplace, Project, Scheme and Target in iOS development</title><link>https://needone.app/blog/workplace-project-scheme-and-target-in-ios-development/</link><guid isPermaLink="true">https://needone.app/blog/workplace-project-scheme-and-target-in-ios-development/</guid><description>Many of us have seen workspace , project , target and scheme quite often while doing the iOS development, but what are they exactly and how are they related with each other? Workpl</description><pubDate>Fri, 16 Dec 2022 23:39:32 GMT</pubDate></item><item><title>Xcode 26.3 + Claude Agent: Model Swapping, MCP, Skills, and Adaptive Configuration</title><link>https://needone.app/blog/xcode-26-3-claude-agent-model-swapping-mcp-skills-and-adaptive-configuration/</link><guid isPermaLink="true">https://needone.app/blog/xcode-26-3-claude-agent-model-swapping-mcp-skills-and-adaptive-configuration/</guid><description>Surprisely, Xcode 26.3 now features out-of-the-box support for Claude Code/Codex. Finally, developers can elegantly leverage native AI Agents directly within the Xcode environment.</description><pubDate>Tue, 03 Mar 2026 22:09:07 GMT</pubDate></item><item><title>What is YAML file and compared with JSON</title><link>https://needone.app/blog/yaml-file/</link><guid isPermaLink="true">https://needone.app/blog/yaml-file/</guid><description>YAML (YAML Ain&apos;t Markup Language) is commonly used for configuration files, but can be used in many applications where data is being stored or transmitted. A YAML file consists of</description><pubDate>Thu, 22 Dec 2022 20:27:31 GMT</pubDate></item><item><title>中华古诗词</title><link>https://needone.app/blog/zhong-hua-gu-shi-ci/</link><guid isPermaLink="true">https://needone.app/blog/zhong-hua-gu-shi-ci/</guid><description>中华古诗词是中华最源远流长的精神文化传承之一，好的诗词给人以精神上美的提升， 本app精选了1000首诗词歌赋： 从先秦 “知人者智，自知者明“ 到清朝 ”吹到一片秋香，清辉了如雪“ 从李白 “天生我材必有用，千金散尽还复来” 到 杜甫 ”感时花溅泪，恨别鸟惊心“ 从白居易 ”绿蚁新醅酒，红泥小火炉“ 到 王昌龄 ”但使龙城飞将在，不教胡马度阴山“ 本app</description><pubDate>Tue, 30 Jun 2020 22:19:00 GMT</pubDate></item></channel></rss>