phillipmaizza/nextexplorer-ios

iOS Client for self-hosted NextExplorer

Swift

0

168 commits

updated Sep 17, 2026

See the code
ios
open-source
spm
swift
swiftui

See what people are saying (1)

SourceMessageScoreDate

NextExplorer for iOS, an iOS app companion for your self-hosted NextExplorer instance (r/selfhosted)

https://preview.redd.it/9pr3ayhj4yph1.png?width=1026&format=png&auto=webp&s=87e537301a263f0e8958f361a77ef7456e373c21 NextExplorer for iOS is the native iOS companion for NextExplorer. It brings 1:1 web parity, native performance, and full offline support to your self-hosted server. 100% open source…

6

Sep 16, 2026

README

NextExplorer app icon

NextExplorer for iOS

Every file, right where you left it.

A fast, private, native file browser for your own self-hosted server. Browse, preview, search and share. Your files stay between your device and the server you choose.


Platform iOS Swift Architecture Languages Accessibility Tracking License


Download on the App Store

Your server, your rules.

NextExplorer is a client. You supply the address of your own compatible file server and sign in with your own credentials. No NextExplorer account, no middleman, no tracking. Your files, credentials and activity stay between your device and that server, and nowhere else.

Snapshots

Straight from the app on iPhone.

BrowseSearchFavoritesSharedSettings
Browsing folders and filesSearching by name and full textStarred favoritesShared by me and with meSettings

Features

  • Browse & preview. Folders, documents, photos, video, code and archives in one clean library, with rich previews and a swipeable media gallery. Non-native media (avi, mkv, webm and more) plays through a built-in VLC-backed player.
  • Find it fast. Search by name or full text across every folder, then filter by type to jump straight to what you need.
  • Favorites & sharing. Star what you reach for, share files by link, and see what others shared with you, all in one place.
  • Sign in your way. Username and password, or single sign-on and passkeys through your own identity provider.
  • Works offline. A saved-copy view keeps your recent folders readable when the connection drops, then refreshes when you are back.
  • Everyone's app. 17 languages with full right-to-left support, plus complete VoiceOver and Dynamic Type accessibility.
  • iPhone and iPad. Universal layout with a split-view sidebar on larger screens.

Under the hood


Native iOS 18+, SwiftUI, and The Composable Architecture. No storyboards driving the app, no UIKit view controllers behind the screens, no third-party analytics. The app is split into focused Swift packages under Packages/:

PackageResponsibility
AppFeatureApp root, tab and window composition, session lifecycle
AuthFeature / AuthClientLogin, SSO, passkeys, session state
FilesFeature / FilesClientBrowse, preview, search, favorites, sharing, offline cache
NetworkClientHTTP layer, ETag revalidation, connectivity
CoreModelsShared domain models
DesignSystemColors, typography, reusable components
Localization17-language string catalog and live in-app language switch
Keychain / AppStorageKeysCredential storage and device preferences

Some choices worth calling out:

  • Phase-driven state. Each screen load is one DataPhase (idle / loading / loaded / failed), not a scatter of loading and error booleans.
  • Heavy work stays off the main thread. Image decode, large reads, parsing and archive work run detached. Downloads stream instead of buffering into memory.
  • Cancellation is not failure. A tab switch or scroll-away cancels a load cleanly, without flashing an error.
  • Offline cache is fallback-only and account-safe. Stale-while-revalidate on disk, wiped on every logout, session expiry and fresh sign-in, so one account's data never leaks into the next.

Building from source


  1. Install Xcode 16 or later.
  2. Clone the repo:
    git clone git@github.com:PhillipMaizza/NextExplorer-iOS.git
    cd NextExplorer-iOS
    
  3. Open NextExplorer.xcodeproj, pick the NextExplorer scheme and an iOS 18+ simulator or device, then Run.

Swift Package Manager resolves every dependency on first build; nothing to install by hand. Run the tests with Product > Test, or xcodebuild test against a matching simulator.

To try it against real data you need a compatible self-hosted server and an account on it.

Contributing

Contributions are welcome. See CONTRIBUTING.md for the branch and PR conventions and the architecture rules (constants, concurrency, state modelling, localization and cache safety) that every change follows.

Privacy

The app talks only to the server you point it at. No analytics, no third-party trackers, no telemetry. Cached copies are cleared on logout, session expiry and fresh sign-in.

See the Privacy Policy and Terms of Use for the full text.

Support

Questions, a bug, or a feature idea? Open an issue on this repo, or reach out through the support site. Replies usually land within a couple of days.

License

Released under the MIT License. Copyright © 2026 Phillip Maizza.

Contributors

pmaizza

92 commits

PhillipMaizza

76 commits

phillipmaizza/nextexplorer-ios

iOS Client for self-hosted NextExplorer

Swift

0

168 commits

updated Sep 17, 2026

See the code
ios
open-source
spm
swift
swiftui

See what people are saying (1)

SourceMessageScoreDate

NextExplorer for iOS, an iOS app companion for your self-hosted NextExplorer instance (r/selfhosted)

https://preview.redd.it/9pr3ayhj4yph1.png?width=1026&format=png&auto=webp&s=87e537301a263f0e8958f361a77ef7456e373c21 NextExplorer for iOS is the native iOS companion for NextExplorer. It brings 1:1 web parity, native performance, and full offline support to your self-hosted server. 100% open source…

6

Sep 16, 2026

README

NextExplorer app icon

NextExplorer for iOS

Every file, right where you left it.

A fast, private, native file browser for your own self-hosted server. Browse, preview, search and share. Your files stay between your device and the server you choose.


Platform iOS Swift Architecture Languages Accessibility Tracking License


Download on the App Store

Your server, your rules.

NextExplorer is a client. You supply the address of your own compatible file server and sign in with your own credentials. No NextExplorer account, no middleman, no tracking. Your files, credentials and activity stay between your device and that server, and nowhere else.

Snapshots

Straight from the app on iPhone.

BrowseSearchFavoritesSharedSettings
Browsing folders and filesSearching by name and full textStarred favoritesShared by me and with meSettings

Features

  • Browse & preview. Folders, documents, photos, video, code and archives in one clean library, with rich previews and a swipeable media gallery. Non-native media (avi, mkv, webm and more) plays through a built-in VLC-backed player.
  • Find it fast. Search by name or full text across every folder, then filter by type to jump straight to what you need.
  • Favorites & sharing. Star what you reach for, share files by link, and see what others shared with you, all in one place.
  • Sign in your way. Username and password, or single sign-on and passkeys through your own identity provider.
  • Works offline. A saved-copy view keeps your recent folders readable when the connection drops, then refreshes when you are back.
  • Everyone's app. 17 languages with full right-to-left support, plus complete VoiceOver and Dynamic Type accessibility.
  • iPhone and iPad. Universal layout with a split-view sidebar on larger screens.

Under the hood


Native iOS 18+, SwiftUI, and The Composable Architecture. No storyboards driving the app, no UIKit view controllers behind the screens, no third-party analytics. The app is split into focused Swift packages under Packages/:

PackageResponsibility
AppFeatureApp root, tab and window composition, session lifecycle
AuthFeature / AuthClientLogin, SSO, passkeys, session state
FilesFeature / FilesClientBrowse, preview, search, favorites, sharing, offline cache
NetworkClientHTTP layer, ETag revalidation, connectivity
CoreModelsShared domain models
DesignSystemColors, typography, reusable components
Localization17-language string catalog and live in-app language switch
Keychain / AppStorageKeysCredential storage and device preferences

Some choices worth calling out:

  • Phase-driven state. Each screen load is one DataPhase (idle / loading / loaded / failed), not a scatter of loading and error booleans.
  • Heavy work stays off the main thread. Image decode, large reads, parsing and archive work run detached. Downloads stream instead of buffering into memory.
  • Cancellation is not failure. A tab switch or scroll-away cancels a load cleanly, without flashing an error.
  • Offline cache is fallback-only and account-safe. Stale-while-revalidate on disk, wiped on every logout, session expiry and fresh sign-in, so one account's data never leaks into the next.

Building from source


  1. Install Xcode 16 or later.
  2. Clone the repo:
    git clone git@github.com:PhillipMaizza/NextExplorer-iOS.git
    cd NextExplorer-iOS
    
  3. Open NextExplorer.xcodeproj, pick the NextExplorer scheme and an iOS 18+ simulator or device, then Run.

Swift Package Manager resolves every dependency on first build; nothing to install by hand. Run the tests with Product > Test, or xcodebuild test against a matching simulator.

To try it against real data you need a compatible self-hosted server and an account on it.

Contributing

Contributions are welcome. See CONTRIBUTING.md for the branch and PR conventions and the architecture rules (constants, concurrency, state modelling, localization and cache safety) that every change follows.

Privacy

The app talks only to the server you point it at. No analytics, no third-party trackers, no telemetry. Cached copies are cleared on logout, session expiry and fresh sign-in.

See the Privacy Policy and Terms of Use for the full text.

Support

Questions, a bug, or a feature idea? Open an issue on this repo, or reach out through the support site. Replies usually land within a couple of days.

License

Released under the MIT License. Copyright © 2026 Phillip Maizza.

Contributors

pmaizza

92 commits

PhillipMaizza

76 commits

Languages

Swift

99.5%