Skip to content

Commit 20050d7

Browse files
graycreateclaude
andauthored
Replace custom tab bar with native iOS TabView (#53)
* feat: replace custom tab bar with native iOS TabView Replace the custom bottom tab bar implementation with iOS native TabView component using SF Symbols icons. Changes: - Replace custom TabBar widget with native SwiftUI TabView - Use SF Symbols for tab icons (newspaper, safari, bell, person) - Add badge support for unread message count - Remove .hide() modifiers from page views (TabView handles visibility) - Move data loading logic to onAppear in each page view - Integrate TopBar within each tab using pageWithTopBar helper Cleanup: - Delete TabBar.swift (custom tab bar implementation) - Remove custom tab icon assets (feed_tab, explore_tab, message_tab, me_tab) - Removed ~150 lines of custom UI code Benefits: - Native iOS look and feel with standard tab bar behavior - Uses system SF Symbols icons instead of custom assets - Cleaner, more maintainable codebase - Better integration with iOS accessibility features - Automatic handling of safe areas and device variations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: remove TabBar.swift references from Xcode project Remove all references to the deleted TabBar.swift file from the Xcode project.pbxproj file to fix build failure. - Remove PBXBuildFile reference - Remove PBXFileReference - Remove from Widget group children - Remove from PBXSourcesBuildPhase Fixes CI build error: "Build input file cannot be found: TabBar.swift" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: restore TabId enum definition Restore the TabId enum definition that was removed with TabBar.swift. The enum is now defined in GlobalState.swift where it's primarily used. Fixes build errors: "cannot find type 'TabId' in scope" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 0db9971 commit 20050d7

File tree

24 files changed

+70
-261
lines changed

24 files changed

+70
-261
lines changed

V2er.xcodeproj/project.pbxproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
4EC32AF229D818FC003A3BD4 /* WebBrowserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC32AF129D818FC003A3BD4 /* WebBrowserView.swift */; };
1414
5D02BD5F26909146007B6A1B /* LoadmoreIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D02BD5E26909146007B6A1B /* LoadmoreIndicatorView.swift */; };
1515
5D04BF9726C9FB6E0005F7E3 /* FeedInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D04BF9626C9FB6E0005F7E3 /* FeedInfo.swift */; };
16-
5D096A08247ABF5E00EF3E47 /* TabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D096A07247ABF5E00EF3E47 /* TabBar.swift */; };
1716
5D0A513726E0CBFC006F3D9B /* ExploreActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A513626E0CBFC006F3D9B /* ExploreActions.swift */; };
1817
5D0A513926E26473006F3D9B /* FeedDetailReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A513826E26473006F3D9B /* FeedDetailReducer.swift */; };
1918
5D0A513B26E26505006F3D9B /* FeedDetailInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A513A26E26505006F3D9B /* FeedDetailInfo.swift */; };
@@ -173,7 +172,6 @@
173172
4EC32AF129D818FC003A3BD4 /* WebBrowserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserView.swift; sourceTree = "<group>"; };
174173
5D02BD5E26909146007B6A1B /* LoadmoreIndicatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadmoreIndicatorView.swift; sourceTree = "<group>"; };
175174
5D04BF9626C9FB6E0005F7E3 /* FeedInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedInfo.swift; sourceTree = "<group>"; };
176-
5D096A07247ABF5E00EF3E47 /* TabBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBar.swift; sourceTree = "<group>"; };
177175
5D0A513626E0CBFC006F3D9B /* ExploreActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExploreActions.swift; sourceTree = "<group>"; };
178176
5D0A513826E26473006F3D9B /* FeedDetailReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedDetailReducer.swift; sourceTree = "<group>"; };
179177
5D0A513A26E26505006F3D9B /* FeedDetailInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedDetailInfo.swift; sourceTree = "<group>"; };
@@ -350,7 +348,6 @@
350348
children = (
351349
5D73FBD827284ACA004558E9 /* RichText */,
352350
5DE5B4CB268466AF00569684 /* Updatable */,
353-
5D096A07247ABF5E00EF3E47 /* TabBar.swift */,
354351
5D1F4264249713640043F604 /* VEBlur.swift */,
355352
5DE5B4C92684601A00569684 /* TopBar.swift */,
356353
5D4E43FB2699E20400650714 /* AvatarView.swift */,
@@ -985,7 +982,6 @@
985982
5D1D7B8726FC9B61008E0C08 /* LoginReducer.swift in Sources */,
986983
5DA2AD4826C18232007FB1EF /* MessageState.swift in Sources */,
987984
5D0CFA8226B9935B001A8A7F /* UserFeedPage.swift in Sources */,
988-
5D096A08247ABF5E00EF3E47 /* TabBar.swift in Sources */,
989985
5D91F8D926F22CEC0089D72E /* TagDetailReducer.swift in Sources */,
990986
5D45FC2B26CD3FCF0055C336 /* SwiftSoupExtention.swift in Sources */,
991987
);

V2er/Assets.xcassets/explore_tab.imageset/Contents.json

Lines changed: 0 additions & 23 deletions
This file was deleted.
-683 Bytes
Binary file not shown.
-1.3 KB
Binary file not shown.
-2 KB
Binary file not shown.

V2er/Assets.xcassets/feed_tab.imageset/Contents.json

Lines changed: 0 additions & 23 deletions
This file was deleted.
-675 Bytes
Binary file not shown.
-1.14 KB
Binary file not shown.
-1.73 KB
Binary file not shown.

V2er/Assets.xcassets/me_tab.imageset/Contents.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)