1. Develop
1.1 Authentication
1.2 Database
| // clean remore memory leak | |
| protocol Weakifiable: class { } | |
| extension NSObject: Weakifiable {} | |
| extension Weakifiable { | |
| func weakify<T, Z>(_ code: @escaping (Self, T) -> Z) -> (T) -> Z? { | |
| return { [weak self] data in | |
| guard let self = self else { return nil} |
| Installing older version of Gitkraken is the only solution I guess to work on private repo if you want it for free and without student developer pack. | |
| From the release notes, the last version to support private repo is v6.5.1. |
| // Check Iranian National Code Validity - Clojure, C#, Ruby, JavaScript, Python, Scala, Java 8, PHP, C, Go, Swift, Kotlin, Groovy, Rust, Haskell, Erlang, Elixir | |
| // بررسی صحت کد ملی ایران - کلوژر، سیشارپ، روبی، جاوااسکریپت، پایتون، اسکالا، جاوا ۸، پیاچپی، سی، گو، سوئیفت، کاتلین، گرووی، راست، هسکل، ارلنگ، الکسیر | |
| // در نسخههای قبل یکسان بودن اعداد نا معتبر تشخیص داده میشد ولی | |
| // اعداد یکسان نامعتبر نیست http://www.fardanews.com/fa/news/127747 | |
| // بعضی از پیادهسازیها سریع نیستند، میتوانید نسخهٔ خود را بر پایهٔ | |
| // نسخهٔ سی یا گو ایجاد کنید که بهترین سرعت را داشته باشد | |
| /** |
| // | |
| // DocumentPicker.swift | |
| import UIKit | |
| import MobileCoreServices | |
| protocol DocumentDelegate: class { | |
| func didPickDocument(document: Document?) | |
| } |
| import Foundation | |
| import SwiftUI | |
| let isUITesting = /* your UI test detection here */ | |
| @main | |
| struct EntryPoint { | |
| static func main() { | |
| if isUITesting { | |
| UITestApp.main() |
| struct Contact: Decodable, CustomStringConvertible { | |
| var id: String | |
| @NestedKey | |
| var firstname: String | |
| @NestedKey | |
| var lastname: String | |
| @NestedKey | |
| var address: String | |
| enum CodingKeys: String, NestableCodingKey { |
1. Develop
1.1 Authentication
1.2 Database
| echo "\033[31;32m \033[0m" | |
| echo "\033[31;32m ## \033[0m" | |
| echo "\033[31;32m ### \033[0m" | |
| echo "\033[31;32m ###** #########*####**** \033[0m" | |
| echo "\033[31;32m ## ############********* #* \033[0m" | |
| echo "\033[31;32m *######***** ### #* \033[0m" | |
| echo "\033[31;32m # * #* \033[0m" | |
| echo "\033[31;32m ## # # ## ###' #* |
| echo -e "\033[31;6m \033[0m" | |
| echo -e "\033[31;6m \033[0m" | |
| echo -e "\033[31;6m \033[0m" | |
| echo -e "\033[31;6m ## \033[0m" | |
| echo -e "\033[31;6m ### \033[0m" | |
| echo -e "\033[31;6m ###** #########*####**** \033[0m" | |
| echo -e "\033[31;6m ## ############********* #* \033[0m" | |
| echo -e "\033[31;6m *######***** |
| struct Form: Codable, Equatable { | |
| let id: Int | |
| let type: FType | |
| let name: String | |
| let code: String | |
| let hasScreenshot: Bool | |
| let total: Int | |
| let totalUnique: Int | |
| let opened: Int | |
| @SomeKindOfBool var active: Bool |