align iOS with Android: auth, SSO login, course selection, phone binding, 4 tabs

This commit is contained in:
2026-08-31 20:45:04 +08:00
parent f9f65988b7
commit b5934f21f5
5 changed files with 867 additions and 18 deletions

View File

@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
AA0000000000000000000090 /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000091 /* AuthAPI.swift */; };
AA0000000000000000000092 /* AuthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000093 /* AuthView.swift */; };
AA0000000000000000000040 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000020 /* Assets.xcassets */; };
AA0000000000000000000042 /* OralTrainerApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000022 /* OralTrainerApp.swift */; };
AA0000000000000000000043 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000023 /* AppDelegate.swift */; };
@@ -33,6 +35,8 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
AA0000000000000000000091 /* AuthAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthAPI.swift; sourceTree = "<group>"; };
AA0000000000000000000093 /* AuthView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthView.swift; sourceTree = "<group>"; };
AA000000000000000000000A /* OralTrainer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OralTrainer.app; sourceTree = BUILT_PRODUCTS_DIR; };
AA000000000000000000001F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AA0000000000000000000020 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
@@ -117,6 +121,7 @@
children = (
AA0000000000000000000028 /* HTTPClient.swift */,
AA0000000000000000000029 /* VideoCatalogAPI.swift */,
AA0000000000000000000091 /* AuthAPI.swift */,
AA000000000000000000002A /* SentenceBoundaryAPI.swift */,
AA000000000000000000002B /* ImitationAssessor.swift */,
AA000000000000000000007E /* DubbingCompositor.swift */,
@@ -139,6 +144,7 @@
children = (
AA000000000000000000002E /* Theme.swift */,
AA000000000000000000002F /* RootView.swift */,
AA0000000000000000000093 /* AuthView.swift */,
AA0000000000000000000030 /* TrainingView.swift */,
AA0000000000000000000031 /* PlayerSectionView.swift */,
AA0000000000000000000032 /* CatalogView.swift */,
@@ -248,6 +254,8 @@
AA0000000000000000000050 /* TrainingView.swift in Sources */,
AA0000000000000000000051 /* PlayerSectionView.swift in Sources */,
AA0000000000000000000052 /* CatalogView.swift in Sources */,
AA0000000000000000000090 /* AuthAPI.swift in Sources */,
AA0000000000000000000092 /* AuthView.swift in Sources */,
AA0000000000000000000053 /* TestView.swift in Sources */,
AA0000000000000000000054 /* FullscreenPlayerView.swift in Sources */,
);