├── ClientTik.ipa ├── ClientTik ├── Appnew.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcuserdata │ │ │ └── falah.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── falah.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Appnew │ ├── Appnew.entitlements │ ├── AppnewApp.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 128.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 16.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 256.png │ │ │ ├── 29.png │ │ │ ├── 32.png │ │ │ ├── 40.png │ │ │ ├── 50.png │ │ │ ├── 512.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 64.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ ├── ContentView.swift │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── appstore.png │ └── playstore.png ├── AppnewTests │ └── AppnewTests.swift └── AppnewUITests │ ├── AppnewUITests.swift │ └── AppnewUITestsLaunchTests.swift ├── ClinetTik.JPEG └── README.md /ClientTik.ipa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik.ipa -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 56; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 5923E0452B2472A3007DD9EC /* AppnewApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5923E0442B2472A3007DD9EC /* AppnewApp.swift */; }; 11 | 5923E0472B2472A3007DD9EC /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5923E0462B2472A3007DD9EC /* ContentView.swift */; }; 12 | 5923E0492B2472A4007DD9EC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5923E0482B2472A4007DD9EC /* Assets.xcassets */; }; 13 | 5923E04D2B2472A4007DD9EC /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5923E04C2B2472A4007DD9EC /* Preview Assets.xcassets */; }; 14 | 5923E0572B2472A4007DD9EC /* AppnewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5923E0562B2472A4007DD9EC /* AppnewTests.swift */; }; 15 | 5923E0612B2472A4007DD9EC /* AppnewUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5923E0602B2472A4007DD9EC /* AppnewUITests.swift */; }; 16 | 5923E0632B2472A4007DD9EC /* AppnewUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5923E0622B2472A4007DD9EC /* AppnewUITestsLaunchTests.swift */; }; 17 | 5923E0712B24964F007DD9EC /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 5923E0702B24964F007DD9EC /* Alamofire */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 5923E0532B2472A4007DD9EC /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 5923E0392B2472A3007DD9EC /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 5923E0402B2472A3007DD9EC; 26 | remoteInfo = Appnew; 27 | }; 28 | 5923E05D2B2472A4007DD9EC /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = 5923E0392B2472A3007DD9EC /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = 5923E0402B2472A3007DD9EC; 33 | remoteInfo = Appnew; 34 | }; 35 | /* End PBXContainerItemProxy section */ 36 | 37 | /* Begin PBXFileReference section */ 38 | 5923E0412B2472A3007DD9EC /* ClientTik.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ClientTik.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 5923E0442B2472A3007DD9EC /* AppnewApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppnewApp.swift; sourceTree = ""; }; 40 | 5923E0462B2472A3007DD9EC /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; wrapsLines = 0; }; 41 | 5923E0482B2472A4007DD9EC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 42 | 5923E04A2B2472A4007DD9EC /* Appnew.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Appnew.entitlements; sourceTree = ""; }; 43 | 5923E04C2B2472A4007DD9EC /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 44 | 5923E0522B2472A4007DD9EC /* AppnewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppnewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 5923E0562B2472A4007DD9EC /* AppnewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppnewTests.swift; sourceTree = ""; }; 46 | 5923E05C2B2472A4007DD9EC /* AppnewUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppnewUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 5923E0602B2472A4007DD9EC /* AppnewUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppnewUITests.swift; sourceTree = ""; }; 48 | 5923E0622B2472A4007DD9EC /* AppnewUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppnewUITestsLaunchTests.swift; sourceTree = ""; }; 49 | /* End PBXFileReference section */ 50 | 51 | /* Begin PBXFrameworksBuildPhase section */ 52 | 5923E03E2B2472A3007DD9EC /* Frameworks */ = { 53 | isa = PBXFrameworksBuildPhase; 54 | buildActionMask = 2147483647; 55 | files = ( 56 | 5923E0712B24964F007DD9EC /* Alamofire in Frameworks */, 57 | ); 58 | runOnlyForDeploymentPostprocessing = 0; 59 | }; 60 | 5923E04F2B2472A4007DD9EC /* Frameworks */ = { 61 | isa = PBXFrameworksBuildPhase; 62 | buildActionMask = 2147483647; 63 | files = ( 64 | ); 65 | runOnlyForDeploymentPostprocessing = 0; 66 | }; 67 | 5923E0592B2472A4007DD9EC /* Frameworks */ = { 68 | isa = PBXFrameworksBuildPhase; 69 | buildActionMask = 2147483647; 70 | files = ( 71 | ); 72 | runOnlyForDeploymentPostprocessing = 0; 73 | }; 74 | /* End PBXFrameworksBuildPhase section */ 75 | 76 | /* Begin PBXGroup section */ 77 | 5923E0382B2472A3007DD9EC = { 78 | isa = PBXGroup; 79 | children = ( 80 | 5923E0432B2472A3007DD9EC /* Appnew */, 81 | 5923E0552B2472A4007DD9EC /* AppnewTests */, 82 | 5923E05F2B2472A4007DD9EC /* AppnewUITests */, 83 | 5923E0422B2472A3007DD9EC /* Products */, 84 | ); 85 | sourceTree = ""; 86 | }; 87 | 5923E0422B2472A3007DD9EC /* Products */ = { 88 | isa = PBXGroup; 89 | children = ( 90 | 5923E0412B2472A3007DD9EC /* ClientTik.app */, 91 | 5923E0522B2472A4007DD9EC /* AppnewTests.xctest */, 92 | 5923E05C2B2472A4007DD9EC /* AppnewUITests.xctest */, 93 | ); 94 | name = Products; 95 | sourceTree = ""; 96 | }; 97 | 5923E0432B2472A3007DD9EC /* Appnew */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 5923E0442B2472A3007DD9EC /* AppnewApp.swift */, 101 | 5923E0462B2472A3007DD9EC /* ContentView.swift */, 102 | 5923E0482B2472A4007DD9EC /* Assets.xcassets */, 103 | 5923E04A2B2472A4007DD9EC /* Appnew.entitlements */, 104 | 5923E04B2B2472A4007DD9EC /* Preview Content */, 105 | ); 106 | path = Appnew; 107 | sourceTree = ""; 108 | }; 109 | 5923E04B2B2472A4007DD9EC /* Preview Content */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 5923E04C2B2472A4007DD9EC /* Preview Assets.xcassets */, 113 | ); 114 | path = "Preview Content"; 115 | sourceTree = ""; 116 | }; 117 | 5923E0552B2472A4007DD9EC /* AppnewTests */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 5923E0562B2472A4007DD9EC /* AppnewTests.swift */, 121 | ); 122 | path = AppnewTests; 123 | sourceTree = ""; 124 | }; 125 | 5923E05F2B2472A4007DD9EC /* AppnewUITests */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 5923E0602B2472A4007DD9EC /* AppnewUITests.swift */, 129 | 5923E0622B2472A4007DD9EC /* AppnewUITestsLaunchTests.swift */, 130 | ); 131 | path = AppnewUITests; 132 | sourceTree = ""; 133 | }; 134 | /* End PBXGroup section */ 135 | 136 | /* Begin PBXNativeTarget section */ 137 | 5923E0402B2472A3007DD9EC /* Appnew */ = { 138 | isa = PBXNativeTarget; 139 | buildConfigurationList = 5923E0662B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "Appnew" */; 140 | buildPhases = ( 141 | 5923E03D2B2472A3007DD9EC /* Sources */, 142 | 5923E03E2B2472A3007DD9EC /* Frameworks */, 143 | 5923E03F2B2472A3007DD9EC /* Resources */, 144 | ); 145 | buildRules = ( 146 | ); 147 | dependencies = ( 148 | ); 149 | name = Appnew; 150 | packageProductDependencies = ( 151 | 5923E0702B24964F007DD9EC /* Alamofire */, 152 | ); 153 | productName = Appnew; 154 | productReference = 5923E0412B2472A3007DD9EC /* ClientTik.app */; 155 | productType = "com.apple.product-type.application"; 156 | }; 157 | 5923E0512B2472A4007DD9EC /* AppnewTests */ = { 158 | isa = PBXNativeTarget; 159 | buildConfigurationList = 5923E0692B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "AppnewTests" */; 160 | buildPhases = ( 161 | 5923E04E2B2472A4007DD9EC /* Sources */, 162 | 5923E04F2B2472A4007DD9EC /* Frameworks */, 163 | 5923E0502B2472A4007DD9EC /* Resources */, 164 | ); 165 | buildRules = ( 166 | ); 167 | dependencies = ( 168 | 5923E0542B2472A4007DD9EC /* PBXTargetDependency */, 169 | ); 170 | name = AppnewTests; 171 | productName = AppnewTests; 172 | productReference = 5923E0522B2472A4007DD9EC /* AppnewTests.xctest */; 173 | productType = "com.apple.product-type.bundle.unit-test"; 174 | }; 175 | 5923E05B2B2472A4007DD9EC /* AppnewUITests */ = { 176 | isa = PBXNativeTarget; 177 | buildConfigurationList = 5923E06C2B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "AppnewUITests" */; 178 | buildPhases = ( 179 | 5923E0582B2472A4007DD9EC /* Sources */, 180 | 5923E0592B2472A4007DD9EC /* Frameworks */, 181 | 5923E05A2B2472A4007DD9EC /* Resources */, 182 | ); 183 | buildRules = ( 184 | ); 185 | dependencies = ( 186 | 5923E05E2B2472A4007DD9EC /* PBXTargetDependency */, 187 | ); 188 | name = AppnewUITests; 189 | productName = AppnewUITests; 190 | productReference = 5923E05C2B2472A4007DD9EC /* AppnewUITests.xctest */; 191 | productType = "com.apple.product-type.bundle.ui-testing"; 192 | }; 193 | /* End PBXNativeTarget section */ 194 | 195 | /* Begin PBXProject section */ 196 | 5923E0392B2472A3007DD9EC /* Project object */ = { 197 | isa = PBXProject; 198 | attributes = { 199 | BuildIndependentTargetsInParallel = 1; 200 | LastSwiftUpdateCheck = 1500; 201 | LastUpgradeCheck = 1500; 202 | TargetAttributes = { 203 | 5923E0402B2472A3007DD9EC = { 204 | CreatedOnToolsVersion = 15.0.1; 205 | }; 206 | 5923E0512B2472A4007DD9EC = { 207 | CreatedOnToolsVersion = 15.0.1; 208 | TestTargetID = 5923E0402B2472A3007DD9EC; 209 | }; 210 | 5923E05B2B2472A4007DD9EC = { 211 | CreatedOnToolsVersion = 15.0.1; 212 | TestTargetID = 5923E0402B2472A3007DD9EC; 213 | }; 214 | }; 215 | }; 216 | buildConfigurationList = 5923E03C2B2472A3007DD9EC /* Build configuration list for PBXProject "Appnew" */; 217 | compatibilityVersion = "Xcode 14.0"; 218 | developmentRegion = en; 219 | hasScannedForEncodings = 0; 220 | knownRegions = ( 221 | en, 222 | Base, 223 | ); 224 | mainGroup = 5923E0382B2472A3007DD9EC; 225 | packageReferences = ( 226 | 5923E06F2B24964F007DD9EC /* XCRemoteSwiftPackageReference "Alamofire" */, 227 | ); 228 | productRefGroup = 5923E0422B2472A3007DD9EC /* Products */; 229 | projectDirPath = ""; 230 | projectRoot = ""; 231 | targets = ( 232 | 5923E0402B2472A3007DD9EC /* Appnew */, 233 | 5923E0512B2472A4007DD9EC /* AppnewTests */, 234 | 5923E05B2B2472A4007DD9EC /* AppnewUITests */, 235 | ); 236 | }; 237 | /* End PBXProject section */ 238 | 239 | /* Begin PBXResourcesBuildPhase section */ 240 | 5923E03F2B2472A3007DD9EC /* Resources */ = { 241 | isa = PBXResourcesBuildPhase; 242 | buildActionMask = 2147483647; 243 | files = ( 244 | 5923E04D2B2472A4007DD9EC /* Preview Assets.xcassets in Resources */, 245 | 5923E0492B2472A4007DD9EC /* Assets.xcassets in Resources */, 246 | ); 247 | runOnlyForDeploymentPostprocessing = 0; 248 | }; 249 | 5923E0502B2472A4007DD9EC /* Resources */ = { 250 | isa = PBXResourcesBuildPhase; 251 | buildActionMask = 2147483647; 252 | files = ( 253 | ); 254 | runOnlyForDeploymentPostprocessing = 0; 255 | }; 256 | 5923E05A2B2472A4007DD9EC /* Resources */ = { 257 | isa = PBXResourcesBuildPhase; 258 | buildActionMask = 2147483647; 259 | files = ( 260 | ); 261 | runOnlyForDeploymentPostprocessing = 0; 262 | }; 263 | /* End PBXResourcesBuildPhase section */ 264 | 265 | /* Begin PBXSourcesBuildPhase section */ 266 | 5923E03D2B2472A3007DD9EC /* Sources */ = { 267 | isa = PBXSourcesBuildPhase; 268 | buildActionMask = 2147483647; 269 | files = ( 270 | 5923E0472B2472A3007DD9EC /* ContentView.swift in Sources */, 271 | 5923E0452B2472A3007DD9EC /* AppnewApp.swift in Sources */, 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | 5923E04E2B2472A4007DD9EC /* Sources */ = { 276 | isa = PBXSourcesBuildPhase; 277 | buildActionMask = 2147483647; 278 | files = ( 279 | 5923E0572B2472A4007DD9EC /* AppnewTests.swift in Sources */, 280 | ); 281 | runOnlyForDeploymentPostprocessing = 0; 282 | }; 283 | 5923E0582B2472A4007DD9EC /* Sources */ = { 284 | isa = PBXSourcesBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | 5923E0612B2472A4007DD9EC /* AppnewUITests.swift in Sources */, 288 | 5923E0632B2472A4007DD9EC /* AppnewUITestsLaunchTests.swift in Sources */, 289 | ); 290 | runOnlyForDeploymentPostprocessing = 0; 291 | }; 292 | /* End PBXSourcesBuildPhase section */ 293 | 294 | /* Begin PBXTargetDependency section */ 295 | 5923E0542B2472A4007DD9EC /* PBXTargetDependency */ = { 296 | isa = PBXTargetDependency; 297 | target = 5923E0402B2472A3007DD9EC /* Appnew */; 298 | targetProxy = 5923E0532B2472A4007DD9EC /* PBXContainerItemProxy */; 299 | }; 300 | 5923E05E2B2472A4007DD9EC /* PBXTargetDependency */ = { 301 | isa = PBXTargetDependency; 302 | target = 5923E0402B2472A3007DD9EC /* Appnew */; 303 | targetProxy = 5923E05D2B2472A4007DD9EC /* PBXContainerItemProxy */; 304 | }; 305 | /* End PBXTargetDependency section */ 306 | 307 | /* Begin XCBuildConfiguration section */ 308 | 5923E0642B2472A4007DD9EC /* Debug */ = { 309 | isa = XCBuildConfiguration; 310 | buildSettings = { 311 | ALWAYS_SEARCH_USER_PATHS = NO; 312 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 313 | CLANG_ANALYZER_NONNULL = YES; 314 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 315 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 316 | CLANG_ENABLE_MODULES = YES; 317 | CLANG_ENABLE_OBJC_ARC = YES; 318 | CLANG_ENABLE_OBJC_WEAK = YES; 319 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 320 | CLANG_WARN_BOOL_CONVERSION = YES; 321 | CLANG_WARN_COMMA = YES; 322 | CLANG_WARN_CONSTANT_CONVERSION = YES; 323 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 324 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 325 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 326 | CLANG_WARN_EMPTY_BODY = YES; 327 | CLANG_WARN_ENUM_CONVERSION = YES; 328 | CLANG_WARN_INFINITE_RECURSION = YES; 329 | CLANG_WARN_INT_CONVERSION = YES; 330 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 331 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 332 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 333 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 334 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 335 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 336 | CLANG_WARN_STRICT_PROTOTYPES = YES; 337 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 338 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 339 | CLANG_WARN_UNREACHABLE_CODE = YES; 340 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 341 | COPY_PHASE_STRIP = NO; 342 | DEBUG_INFORMATION_FORMAT = dwarf; 343 | ENABLE_STRICT_OBJC_MSGSEND = YES; 344 | ENABLE_TESTABILITY = YES; 345 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 346 | GCC_C_LANGUAGE_STANDARD = gnu17; 347 | GCC_DYNAMIC_NO_PIC = NO; 348 | GCC_NO_COMMON_BLOCKS = YES; 349 | GCC_OPTIMIZATION_LEVEL = 0; 350 | GCC_PREPROCESSOR_DEFINITIONS = ( 351 | "DEBUG=1", 352 | "$(inherited)", 353 | ); 354 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 355 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 356 | GCC_WARN_UNDECLARED_SELECTOR = YES; 357 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 358 | GCC_WARN_UNUSED_FUNCTION = YES; 359 | GCC_WARN_UNUSED_VARIABLE = YES; 360 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 361 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 362 | MACOSX_DEPLOYMENT_TARGET = 12.0; 363 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 364 | MTL_FAST_MATH = YES; 365 | ONLY_ACTIVE_ARCH = YES; 366 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; 367 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 368 | }; 369 | name = Debug; 370 | }; 371 | 5923E0652B2472A4007DD9EC /* Release */ = { 372 | isa = XCBuildConfiguration; 373 | buildSettings = { 374 | ALWAYS_SEARCH_USER_PATHS = NO; 375 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 376 | CLANG_ANALYZER_NONNULL = YES; 377 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 378 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 379 | CLANG_ENABLE_MODULES = YES; 380 | CLANG_ENABLE_OBJC_ARC = YES; 381 | CLANG_ENABLE_OBJC_WEAK = YES; 382 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 383 | CLANG_WARN_BOOL_CONVERSION = YES; 384 | CLANG_WARN_COMMA = YES; 385 | CLANG_WARN_CONSTANT_CONVERSION = YES; 386 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 387 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 388 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 389 | CLANG_WARN_EMPTY_BODY = YES; 390 | CLANG_WARN_ENUM_CONVERSION = YES; 391 | CLANG_WARN_INFINITE_RECURSION = YES; 392 | CLANG_WARN_INT_CONVERSION = YES; 393 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 394 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 395 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 396 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 397 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 398 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 399 | CLANG_WARN_STRICT_PROTOTYPES = YES; 400 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 401 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 402 | CLANG_WARN_UNREACHABLE_CODE = YES; 403 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 404 | COPY_PHASE_STRIP = NO; 405 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 406 | ENABLE_NS_ASSERTIONS = NO; 407 | ENABLE_STRICT_OBJC_MSGSEND = YES; 408 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 409 | GCC_C_LANGUAGE_STANDARD = gnu17; 410 | GCC_NO_COMMON_BLOCKS = YES; 411 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 412 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 413 | GCC_WARN_UNDECLARED_SELECTOR = YES; 414 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 415 | GCC_WARN_UNUSED_FUNCTION = YES; 416 | GCC_WARN_UNUSED_VARIABLE = YES; 417 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 418 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 419 | MACOSX_DEPLOYMENT_TARGET = 12.0; 420 | MTL_ENABLE_DEBUG_INFO = NO; 421 | MTL_FAST_MATH = YES; 422 | SWIFT_COMPILATION_MODE = wholemodule; 423 | }; 424 | name = Release; 425 | }; 426 | 5923E0672B2472A4007DD9EC /* Debug */ = { 427 | isa = XCBuildConfiguration; 428 | buildSettings = { 429 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 430 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 431 | CODE_SIGN_ENTITLEMENTS = Appnew/Appnew.entitlements; 432 | CODE_SIGN_STYLE = Automatic; 433 | CURRENT_PROJECT_VERSION = 1; 434 | DEVELOPMENT_ASSET_PATHS = "\"Appnew/Preview Content\""; 435 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 436 | ENABLE_HARDENED_RUNTIME = YES; 437 | ENABLE_PREVIEWS = YES; 438 | GENERATE_INFOPLIST_FILE = YES; 439 | "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; 440 | "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; 441 | "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; 442 | "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; 443 | "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; 444 | "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; 445 | "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; 446 | "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; 447 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 448 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 449 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 450 | LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; 451 | "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; 452 | MACOSX_DEPLOYMENT_TARGET = 12.0; 453 | MARKETING_VERSION = 1.0; 454 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.Appnew; 455 | PRODUCT_NAME = ClientTik; 456 | SDKROOT = auto; 457 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 458 | SWIFT_EMIT_LOC_STRINGS = YES; 459 | SWIFT_VERSION = 5.0; 460 | TARGETED_DEVICE_FAMILY = "1,2"; 461 | }; 462 | name = Debug; 463 | }; 464 | 5923E0682B2472A4007DD9EC /* Release */ = { 465 | isa = XCBuildConfiguration; 466 | buildSettings = { 467 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 468 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 469 | CODE_SIGN_ENTITLEMENTS = Appnew/Appnew.entitlements; 470 | CODE_SIGN_STYLE = Automatic; 471 | CURRENT_PROJECT_VERSION = 1; 472 | DEVELOPMENT_ASSET_PATHS = "\"Appnew/Preview Content\""; 473 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 474 | ENABLE_HARDENED_RUNTIME = YES; 475 | ENABLE_PREVIEWS = YES; 476 | GENERATE_INFOPLIST_FILE = YES; 477 | "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; 478 | "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; 479 | "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; 480 | "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; 481 | "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; 482 | "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; 483 | "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; 484 | "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; 485 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 486 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 487 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 488 | LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; 489 | "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; 490 | MACOSX_DEPLOYMENT_TARGET = 12.0; 491 | MARKETING_VERSION = 1.0; 492 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.Appnew; 493 | PRODUCT_NAME = ClientTik; 494 | SDKROOT = auto; 495 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 496 | SWIFT_EMIT_LOC_STRINGS = YES; 497 | SWIFT_VERSION = 5.0; 498 | TARGETED_DEVICE_FAMILY = "1,2"; 499 | }; 500 | name = Release; 501 | }; 502 | 5923E06A2B2472A4007DD9EC /* Debug */ = { 503 | isa = XCBuildConfiguration; 504 | buildSettings = { 505 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 506 | BUNDLE_LOADER = "$(TEST_HOST)"; 507 | CODE_SIGN_STYLE = Automatic; 508 | CURRENT_PROJECT_VERSION = 1; 509 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 510 | GENERATE_INFOPLIST_FILE = YES; 511 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; 512 | MACOSX_DEPLOYMENT_TARGET = 13.6; 513 | MARKETING_VERSION = 1.0; 514 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.AppnewTests; 515 | PRODUCT_NAME = "$(TARGET_NAME)"; 516 | SDKROOT = auto; 517 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 518 | SWIFT_EMIT_LOC_STRINGS = NO; 519 | SWIFT_VERSION = 5.0; 520 | TARGETED_DEVICE_FAMILY = "1,2"; 521 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Appnew.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Appnew"; 522 | }; 523 | name = Debug; 524 | }; 525 | 5923E06B2B2472A4007DD9EC /* Release */ = { 526 | isa = XCBuildConfiguration; 527 | buildSettings = { 528 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 529 | BUNDLE_LOADER = "$(TEST_HOST)"; 530 | CODE_SIGN_STYLE = Automatic; 531 | CURRENT_PROJECT_VERSION = 1; 532 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 533 | GENERATE_INFOPLIST_FILE = YES; 534 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; 535 | MACOSX_DEPLOYMENT_TARGET = 13.6; 536 | MARKETING_VERSION = 1.0; 537 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.AppnewTests; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | SDKROOT = auto; 540 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 541 | SWIFT_EMIT_LOC_STRINGS = NO; 542 | SWIFT_VERSION = 5.0; 543 | TARGETED_DEVICE_FAMILY = "1,2"; 544 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Appnew.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Appnew"; 545 | }; 546 | name = Release; 547 | }; 548 | 5923E06D2B2472A4007DD9EC /* Debug */ = { 549 | isa = XCBuildConfiguration; 550 | buildSettings = { 551 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 552 | CODE_SIGN_STYLE = Automatic; 553 | CURRENT_PROJECT_VERSION = 1; 554 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 555 | GENERATE_INFOPLIST_FILE = YES; 556 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; 557 | MACOSX_DEPLOYMENT_TARGET = 13.6; 558 | MARKETING_VERSION = 1.0; 559 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.AppnewUITests; 560 | PRODUCT_NAME = "$(TARGET_NAME)"; 561 | SDKROOT = auto; 562 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 563 | SWIFT_EMIT_LOC_STRINGS = NO; 564 | SWIFT_VERSION = 5.0; 565 | TARGETED_DEVICE_FAMILY = "1,2"; 566 | TEST_TARGET_NAME = Appnew; 567 | }; 568 | name = Debug; 569 | }; 570 | 5923E06E2B2472A4007DD9EC /* Release */ = { 571 | isa = XCBuildConfiguration; 572 | buildSettings = { 573 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 574 | CODE_SIGN_STYLE = Automatic; 575 | CURRENT_PROJECT_VERSION = 1; 576 | DEVELOPMENT_TEAM = GLBVL5TD9Q; 577 | GENERATE_INFOPLIST_FILE = YES; 578 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; 579 | MACOSX_DEPLOYMENT_TARGET = 13.6; 580 | MARKETING_VERSION = 1.0; 581 | PRODUCT_BUNDLE_IDENTIFIER = com.FaLaH.AppnewUITests; 582 | PRODUCT_NAME = "$(TARGET_NAME)"; 583 | SDKROOT = auto; 584 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; 585 | SWIFT_EMIT_LOC_STRINGS = NO; 586 | SWIFT_VERSION = 5.0; 587 | TARGETED_DEVICE_FAMILY = "1,2"; 588 | TEST_TARGET_NAME = Appnew; 589 | }; 590 | name = Release; 591 | }; 592 | /* End XCBuildConfiguration section */ 593 | 594 | /* Begin XCConfigurationList section */ 595 | 5923E03C2B2472A3007DD9EC /* Build configuration list for PBXProject "Appnew" */ = { 596 | isa = XCConfigurationList; 597 | buildConfigurations = ( 598 | 5923E0642B2472A4007DD9EC /* Debug */, 599 | 5923E0652B2472A4007DD9EC /* Release */, 600 | ); 601 | defaultConfigurationIsVisible = 0; 602 | defaultConfigurationName = Release; 603 | }; 604 | 5923E0662B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "Appnew" */ = { 605 | isa = XCConfigurationList; 606 | buildConfigurations = ( 607 | 5923E0672B2472A4007DD9EC /* Debug */, 608 | 5923E0682B2472A4007DD9EC /* Release */, 609 | ); 610 | defaultConfigurationIsVisible = 0; 611 | defaultConfigurationName = Release; 612 | }; 613 | 5923E0692B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "AppnewTests" */ = { 614 | isa = XCConfigurationList; 615 | buildConfigurations = ( 616 | 5923E06A2B2472A4007DD9EC /* Debug */, 617 | 5923E06B2B2472A4007DD9EC /* Release */, 618 | ); 619 | defaultConfigurationIsVisible = 0; 620 | defaultConfigurationName = Release; 621 | }; 622 | 5923E06C2B2472A4007DD9EC /* Build configuration list for PBXNativeTarget "AppnewUITests" */ = { 623 | isa = XCConfigurationList; 624 | buildConfigurations = ( 625 | 5923E06D2B2472A4007DD9EC /* Debug */, 626 | 5923E06E2B2472A4007DD9EC /* Release */, 627 | ); 628 | defaultConfigurationIsVisible = 0; 629 | defaultConfigurationName = Release; 630 | }; 631 | /* End XCConfigurationList section */ 632 | 633 | /* Begin XCRemoteSwiftPackageReference section */ 634 | 5923E06F2B24964F007DD9EC /* XCRemoteSwiftPackageReference "Alamofire" */ = { 635 | isa = XCRemoteSwiftPackageReference; 636 | repositoryURL = "https://github.com/Alamofire/Alamofire.git"; 637 | requirement = { 638 | kind = upToNextMajorVersion; 639 | minimumVersion = 5.8.1; 640 | }; 641 | }; 642 | /* End XCRemoteSwiftPackageReference section */ 643 | 644 | /* Begin XCSwiftPackageProductDependency section */ 645 | 5923E0702B24964F007DD9EC /* Alamofire */ = { 646 | isa = XCSwiftPackageProductDependency; 647 | package = 5923E06F2B24964F007DD9EC /* XCRemoteSwiftPackageReference "Alamofire" */; 648 | productName = Alamofire; 649 | }; 650 | /* End XCSwiftPackageProductDependency section */ 651 | }; 652 | rootObject = 5923E0392B2472A3007DD9EC /* Project object */; 653 | } 654 | -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "alamofire", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/Alamofire/Alamofire.git", 7 | "state" : { 8 | "revision" : "3dc6a42c7727c49bf26508e29b0a0b35f9c7e1ad", 9 | "version" : "5.8.1" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/project.xcworkspace/xcuserdata/falah.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew.xcodeproj/project.xcworkspace/xcuserdata/falah.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ClientTik/Appnew.xcodeproj/xcuserdata/falah.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Appnew.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ClientTik/Appnew/Appnew.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ClientTik/Appnew/AppnewApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppnewApp.swift 3 | // Appnew 4 | // 5 | // Created by FaLaH on 25/05/1445 AH. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct AppnewApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView() 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ClientTik/Appnew/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | {"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} -------------------------------------------------------------------------------- /ClientTik/Appnew/ContentView.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import Alamofire 3 | 4 | struct ContentView: View { 5 | @State private var videoid: String = "" 6 | @State private var cursor = 0 7 | @State private var comments: [Comment] = [] 8 | @State private var searchText: String = "" 9 | @State private var filteredComments: [Comment] = [] 10 | @State private var showAlert = false 11 | @State private var alertMessage = "" 12 | 13 | 14 | var body: some View { 15 | NavigationView { 16 | VStack { 17 | TextField("TikTok ID Video :", text: $videoid) 18 | .padding() 19 | 20 | Button(action: { 21 | fetchComments() 22 | }) { 23 | Text("Get Comments") 24 | .frame(width: 200, height: 50) 25 | .background(LinearGradient(gradient: Gradient(colors: [.blue, .purple]), startPoint: .leading, endPoint: .trailing)) 26 | .foregroundColor(.white) 27 | .cornerRadius(10) 28 | .scaleEffect(1.0) 29 | .animation(.spring(response: 0.3, dampingFraction: 0.5, blendDuration: 0.5)) 30 | .shadow(color: .blue, radius: 10, x: 0, y: 0) 31 | } 32 | 33 | TextField("Search", text: $searchText) 34 | .padding() 35 | 36 | List(filteredComments, id: \.id) { comment in 37 | VStack(alignment: .leading) { 38 | Text("Username: \(comment.user.unique_id)") 39 | Text(comment.text) 40 | } 41 | } 42 | 43 | Spacer() 44 | 45 | VStack { 46 | Link(" Twitter/x: @0xFaLaH ", destination: URL(string: "https://twitter.com/0xFaLaH")!) 47 | .font(.footnote) 48 | .background(LinearGradient(gradient: Gradient(colors: [.blue, .purple]), startPoint: .leading, endPoint: .trailing)) 49 | .foregroundColor(.white) 50 | .cornerRadius(10) 51 | .scaleEffect(1.0) 52 | .animation(.spring(response: 0.3, dampingFraction: 0.5, blendDuration: 0.5)) 53 | .shadow(color: .blue, radius: 10, x: 0, y: 0) 54 | 55 | } 56 | .padding() 57 | } 58 | } 59 | .padding() 60 | .onAppear { 61 | let lastCommentIndex = filteredComments.count - 1 62 | if lastCommentIndex >= 0 && lastCommentIndex == comments.count - 1 { 63 | fetchComments() 64 | } 65 | } 66 | .onChange(of: searchText) { _ in 67 | filterComments() 68 | } 69 | } 70 | 71 | 72 | 73 | 74 | func fetchComments() { 75 | var temporaryVideoid = videoid 76 | self.videoid = temporaryVideoid 77 | 78 | 79 | let headers: HTTPHeaders = [ 80 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", 81 | "referer": "https://www.tiktok.com/@x/video/\(videoid)" 82 | ] 83 | 84 | let urlString = "https://www.tiktok.com/api/comment/list/?aid=1988&aweme_id=\(videoid)&count=9999999&cursor=\(cursor)" 85 | 86 | guard let url = URL(string: urlString) else { 87 | return 88 | } 89 | 90 | AF.request(url, headers: headers).responseDecodable(of: CommentListResponse.self) { response in 91 | switch response.result { 92 | case .success(let commentListResponse): 93 | DispatchQueue.main.async { 94 | self.comments = commentListResponse.comments 95 | self.cursor += commentListResponse.comments.count 96 | self.filterComments() 97 | self.videoid = temporaryVideoid 98 | } 99 | case .failure(let error): 100 | self.showAlert = true 101 | self.alertMessage = "حدث خطأ" 102 | 103 | } 104 | } 105 | } 106 | 107 | func filterComments() { 108 | if searchText.isEmpty { 109 | filteredComments = comments 110 | } else { 111 | filteredComments = comments.filter { comment in 112 | return comment.user.unique_id.localizedCaseInsensitiveContains(searchText) || comment.text.localizedCaseInsensitiveContains(searchText) 113 | } 114 | } 115 | } 116 | } 117 | 118 | struct CommentListResponse: Codable { 119 | let comments: [Comment] 120 | } 121 | 122 | struct Comment: Codable, Identifiable, Hashable { 123 | let id = UUID() 124 | let text: String 125 | let user: User 126 | 127 | func hash(into hasher: inout Hasher) { 128 | hasher.combine(id) 129 | } 130 | 131 | static func ==(lhs: Comment, rhs: Comment) -> Bool { 132 | return lhs.id == rhs.id 133 | } 134 | } 135 | 136 | struct User: Codable { 137 | let unique_id: String 138 | } 139 | 140 | struct ContentView_Previews: PreviewProvider { 141 | static var previews: some View { 142 | ContentView() 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /ClientTik/Appnew/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ClientTik/Appnew/appstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/appstore.png -------------------------------------------------------------------------------- /ClientTik/Appnew/playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClientTik/Appnew/playstore.png -------------------------------------------------------------------------------- /ClientTik/AppnewTests/AppnewTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppnewTests.swift 3 | // AppnewTests 4 | // 5 | // Created by FaLaH on 25/05/1445 AH. 6 | // 7 | 8 | import XCTest 9 | 10 | final class AppnewTests: XCTestCase { 11 | 12 | override func setUpWithError() throws { 13 | // Put setup code here. This method is called before the invocation of each test method in the class. 14 | } 15 | 16 | override func tearDownWithError() throws { 17 | // Put teardown code here. This method is called after the invocation of each test method in the class. 18 | } 19 | 20 | func testExample() throws { 21 | // This is an example of a functional test case. 22 | // Use XCTAssert and related functions to verify your tests produce the correct results. 23 | // Any test you write for XCTest can be annotated as throws and async. 24 | // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. 25 | // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. 26 | } 27 | 28 | func testPerformanceExample() throws { 29 | // This is an example of a performance test case. 30 | measure { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /ClientTik/AppnewUITests/AppnewUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppnewUITests.swift 3 | // AppnewUITests 4 | // 5 | // Created by FaLaH on 25/05/1445 AH. 6 | // 7 | 8 | import XCTest 9 | 10 | final class AppnewUITests: XCTestCase { 11 | 12 | override func setUpWithError() throws { 13 | // Put setup code here. This method is called before the invocation of each test method in the class. 14 | 15 | // In UI tests it is usually best to stop immediately when a failure occurs. 16 | continueAfterFailure = false 17 | 18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 19 | } 20 | 21 | override func tearDownWithError() throws { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | func testExample() throws { 26 | // UI tests must launch the application that they test. 27 | let app = XCUIApplication() 28 | app.launch() 29 | 30 | // Use XCTAssert and related functions to verify your tests produce the correct results. 31 | } 32 | 33 | func testLaunchPerformance() throws { 34 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { 35 | // This measures how long it takes to launch your application. 36 | measure(metrics: [XCTApplicationLaunchMetric()]) { 37 | XCUIApplication().launch() 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ClientTik/AppnewUITests/AppnewUITestsLaunchTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppnewUITestsLaunchTests.swift 3 | // AppnewUITests 4 | // 5 | // Created by FaLaH on 25/05/1445 AH. 6 | // 7 | 8 | import XCTest 9 | 10 | final class AppnewUITestsLaunchTests: XCTestCase { 11 | 12 | override class var runsForEachTargetApplicationUIConfiguration: Bool { 13 | true 14 | } 15 | 16 | override func setUpWithError() throws { 17 | continueAfterFailure = false 18 | } 19 | 20 | func testLaunch() throws { 21 | let app = XCUIApplication() 22 | app.launch() 23 | 24 | // Insert steps here to perform after app launch but before taking a screenshot, 25 | // such as logging into a test account or navigating somewhere in the app 26 | 27 | let attachment = XCTAttachment(screenshot: app.screenshot()) 28 | attachment.name = "Launch Screen" 29 | attachment.lifetime = .keepAlways 30 | add(attachment) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ClinetTik.JPEG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xfff0800/ClientTik-Swift-ios/84bba6a8162d76f6299a5081e3d9585d6ea04b20/ClinetTik.JPEG -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ClientTik-Swift-ios 2 | 3 | 4 | 5 | 6 | ClinetTik is an application that allows you to efficiently search through large numbers of comments 7 | It enables users to search for specific text or accounts, even among thousands of comments, saving time and simplifying 8 | the search and analysis process. The app utilizes innovative techniques to extract important information swiftly from a vast volume of comments 9 | Additionally, it facilitates easy searching for a specific word or account among thousands of accounts and comments 10 | 11 | Note : The ClientTik.IPA application requires a signature ✍️ for installation on your device. If you have a Mac, you can install it directly using Xcode 🧑‍💻 12 | --------------------------------------------------------------------------------