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 |