https://github.com/maximbilan/swifthandbook
Explore essential Swift nuggets in our "Swift Handbook" repository. Tailored for both beginners or pros.
https://github.com/maximbilan/swifthandbook
handbook swift tips tips-and-tricks tips-tricks
Last synced: 4 months ago
JSON representation
Explore essential Swift nuggets in our "Swift Handbook" repository. Tailored for both beginners or pros.
- Host: GitHub
- URL: https://github.com/maximbilan/swifthandbook
- Owner: maximbilan
- Created: 2023-12-26T14:34:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-10T09:43:45.000Z (over 1 year ago)
- Last Synced: 2024-12-30T09:26:21.887Z (6 months ago)
- Topics: handbook, swift, tips, tips-and-tricks, tips-tricks
- Homepage:
- Size: 208 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Swift Handbook
Welcome to "Swift Handbook," where we peel back the layers of Swift, revealing the nifty tricks and under-the-hood magic that make this language a modern marvel. Our repository is your go-to treasure trove for bite-sized wisdom, dishing out savvy programming insights. Whether you're a seasoned coder or just starting, our tips cater to all, making complex concepts digestible and fun.# Tips
[1. defer](/tips/001_defer/script.md)
[2. Unavailable macro](/tips/002_unavailable/script.md)
[3. Semicolons](/tips/003_semicolons/script.md)
[4. if case let](/tips/004_if_case_let/script.md)
[5. Typealiases](/tips/005_typealiases_for_functions/script.md)
[6. @discardableResult](/tips/006_@discardableResult/script.md)
[7. CaseIterable](/tips/007_caseIterable/script.md)
[8. CustomStringConvertible protocol](/tips/008_customStringConvertible/script.md)
[9. zip](/tips/009_zip/script.md)
[10. reduce](/tips/010_reduce/script.md)
[11. deinit](/tips/011_deinit/script.md)
[12. Lazy](/tips/012_lazy/script.md)
[13. Lazy Threads](/tips/013_lazy_threads/script.md)
[14. inout](/tips/014_inout/script.md)
[15. autoclosure](/tips/015_autoclosure/script.md)
[16. where for loop](/tips/016_where_for_loop/script.md)
[17. Variadic Arguments](/tips/017_variadic_arguments/script.md)
[18. @dynamicCallable](/tips/018_@dynamicCallable/script.md)
[19. Opaque Types](/tips/019_opaque_types/script.md)
[20. Dump](/tips/020_dump/script.md)
[21. Result](/tips/021_result/script.md)
[22. Large number separators](/tips/022_large_number_separators/script.md)
[23. Actor](/tips/023_actor/script.md)
[24. @nonobjc](/tips/024_@nonobjc/script.md)
[25. @propertyWrapper](/tips/025_@propertyWrapper/script.md)
[26. mutating](/tips/026_mutating/script.md)
[27. fallthrough](/tips/027_fallthrough/script.md)
[28. Tuples](/tips/028_tuples/script.md)
[29. @dynamicMemberLookup](/tips/029_@dynamicMemberLookup/script.md)
[30. @inlinable](/tips/030_@inlinable/script.md)
[31. @autoreleasepool](/tips/031_@autoreleasepool/script.md)
[32. guard](/tips/032_guard/script.md)
[33. targetEnvironment](/tips/033_targetEnvironment/script.md)
[34. Optionals](/tips/034_optionals/script.md)
[35. Closures](/tips/035_closures/script.md)
[36. @atomic](/tips/036_@atomic/script.md)
[37. SOLID Single responsibility principle](/tips/037_solid_srp/script.md)
[38. SOLID Open–closed principle](/tips/038_solid_ocp/script.md)
[39. SOLID Liskov substitution principle](/tips/039_solid_lsp/script.md)
[40. SOLID Interface segregation principle](/tips/040_solid_isp/script.md)
[41. SOLID Dependency inversion principle](/tips/041_solid_dip/script.md)
[42. Task](/tips/042_task/script.md)
[43. Detached Task](/tips/043_task_detached/script.md)
[44. compactMap](/tips/044_compactMap/script.md)
[45. GeometryReader](/tips/045_GeometryReader/script.md)
[46. Safe Array Extension](/tips/046_safe_array_extension/script.md)
[47. Property observers](/tips/047_property_observers/script.md)
[48. Codable](/tips/048_codable/script.md)
[49. Equatable](/tips/049_equatable/script.md)
[50. Optional Protocol](/tips/050_protocol_optional/script.md)
[51. @Environment](/tips/051_@Environment/script.md)
[52. @EnvironmentObject](/tips/052_@EnvironmentObject/script.md)
[53. App Start](/tips/053_app_start/script.md)
[54. Type Metadata](/tips/054_type_metadata/script.md)
[55. Final](/tips/055_final/script.md)
[56. Main Thread check](/tips/056_is_main_thread/script.md)
[57. Optional chaining](/tips/057_optional_chaining/script.md)
[58. PassthroughSubject](/tips/058_PassthroughSubject/script.md)
[59. CurrentValueSubject](/tips/059_CurrentValueSubject/script.md)
[60. Intersection](/tips/060_intersection/script.md)
[61. Union](/tips/061_union/script.md)
[62. Subtract](/tips/062_subtract/script.md)
[63. Symmetric Difference](/tips/063_symmetric_difference/script.md)
[64. foreach](/tips/064_foreach/script.md)
[65. AsyncSequence](/tips/065_async_sequence/script.md)
[66. @objc members](/tips/066_objc_members/script.md)
[67. Recursion](/tips/067_recursion/script.md)
[68. Polymorphism](/tips/068_polymorphism/script.md)
[69. Inheritance](/tips/069_inheritance/script.md)
[70. Composition](/tips/070_composition/script.md)
[71. Delegation](/tips/071_delegation/script.md)
[72. Abstraction](/tips/072_abstraction/script.md)
[73. KISS](/tips/073_kiss/script.md)
[74. Encapsulation](/tips/074_encapsulation/script.md)
[75. Pure function](/tips/075_pure_function/script.md)
[76. FetchRequest](/tips/076_fetch_request/script.md)
[77. Random](/tips/077_random/script.md)
[78. Private init](/tips/078_private_init/script.md)
[79. Optional Initializer](/tips/079_optional_initializer/script.md)
[80. Designated Initializer](/tips/080_designated_initializer/script.md)
[81. Convenience Initializer](/tips/081_convenience_initializer/script.md)
[82. How to check the Swift version at compile time](/tips/082_version/script.md)
[83. How to convert between camel case and snake case](/tips/083_key_encoding_strategy/script.md)
[84. How to make operations wait for another to complete](/tips/084_operation_dependency/script.md)
[85. How to make a network request wait for an internet connection](/tips/085_waitsForConnectivity/script.md)
[86. How to check whether a module is available](/tips/086_can_import/script.md)
[87. How to convert a multidimensional array to a single-dimensional array](/tips/087_joined/script.md)
[88. How to compare dates](/tips/088_dates/script.md)
[89. Unowned Reference](/tips/089_unowned_reference/script.md)
[90. What does Weak reference mean?](/tips/090_weak_reference/script.md)
[91. What does Strong reference mean?](/tips/091_strong_reference/script.md)
[92. Weak vs Unowned](/tips/092_weak_vs_unowned/script.md)
[93. Automatic Reference Counting](/tips/093_arc/script.md)
[94. Open vs Public](/tips/094_open_vs_public/script.md)
[95. Swizzling](/tips/095_swizzling/script.md)
[96. How to use Stack in Swift](/tips/096_stack/script.md)
[97. How to implement a Queue in Swift](/tips/097_queue/script.md)
[98. How to implement LinkedList in Swift](/tips/098_linkedlist/script.md)
[99. Singleton in Swift](/tips/099_singleton/script.md)
[100. Zombie in Swift](/tips/100_nszombie/script.md)
[101. How to use try-catch in Swift](/tips/101_try_catch/script.md)
[102. How to use Generics in Swift](/tips/102_generics/script.md)
[103. Implementing Tree Data Structure in Swift](/tips/103_tree/script.md)
[104. How to implement Graph in Swift](/tips/104_graph/script.md)
[105. How to use Proxy pattern in Swift](/tips/105_proxy/script.md)
[106. How to use Facade design pattern in Swift](/tips/106_facade/script.md)
[107. How to use Adapter pattern in Swift](/tips/107_adapter/script.md)
[108. How to use Decorator pattern in Swift](/tips/108_decorator/script.md)
[109. Bit manipulation](/tips/109_bit_manipulation/script.md)
[110. Binary tree](/tips/110_b_tree/script.md)
[111. How to implement Observer pattern in Swift](/tips/111_observer/script.md)
[112. How to shuffle an array in Swift](/tips/112_array_shuffle/script.md)
[113. How to use associated type in Swift](/tips/113_associatedtype/script.md)
[114. RunLoop for Precise Timing in Swift](/tips/114_runloop/script.md)
[115. Subscriber method for receiving and handling data](/tips/115_sink/script.md)
[116. How to use Sendable protocol in Swift](/tips/116_sendable/script.md)
[117. How to use Builder pattern in Swift](/tips/117_builder/script.md)
[118. How to use Prototype pattern in Swift](/tips/118_prototype/script.md)
[119. Tracking Download Progress in URLSession](/tips/119_tracking_the_progress/script.md)