Customize Stream Chat SwiftUI Demo App (Messenger-Style UI & Security Enhancements)
Budget: $30 – $250 CAD
I am seeking an experienced iOS developer proficient in Swift and SwiftUI to customize the Demo App from the stream-chat-swiftui repository. The goal is to modify the chat UI to match Facebook Messenger's message bubble style and implement a secure PIN-based lock screen, while ensuring the app remains hidden from Siri and app searches. All existing functionalities (e.g., read receipts, user presence, timestamps) must remain unchanged.
Demo App Source: https://github.com/GetStream/stream-chat-swiftui/tree/develop/DemoAppSwiftUI
Requirements:
Message Bubble UI Customization: Modify the message bubble UI for both Direct Chat and Channel Chat to exactly match Facebook Messenger's style. Self Messages: Blue bubble with white text. Other Messages: Gray bubble with black text. Corner Rounding (Messenger-style): Topmost bubble: Top-left, top-right, bottom-left corners fully rounded; bottom-right corner slightly rounded. Bottommost bubble: Top-left, bottom-left, bottom-right corners fully rounded; top-right corner slightly rounded. Middle bubbles: Top-left and bottom-left corners fully rounded; top-right and bottom-right corners slightly rounded. Ensure the design is pixel-perfect and consistent across all chat types.
PIN-Based Lock Screen: Implement a mandatory 6-digit numeric PIN (no Face ID) for app access. After selecting a user from the list (existing login flow), prompt the user to set a 6-digit PIN on first login. Store the PIN securely in the iOS Keychain. Require the PIN every time the app is reopened, minimized, or killed (immediate lock screen activation). Provide a backend or server-side mechanism to reset the PIN if the user forgets it (e.g., via email or admin reset). Ensure the lock screen UI is clean, secure, and user-friendly.
App Privacy (Zero Traces): Configure the app to be hidden from Siri and app searches. Prevent the app from appearing in Siri search results, App Library searches, or Siri Suggestions. Ensure no traces of the app are visible in iOS search functionalities.
Preserve Existing Functionality: Do not modify any existing features, including but not limited to read receipts, user presence indicators, timestamps, and any other implemented functionality in the Demo App. Ensure all changes integrate seamlessly without breaking the existing codebase.
Demo App Source: https://github.com/GetStream/stream-chat-swiftui/tree/develop/DemoAppSwiftUI
Requirements:
Message Bubble UI Customization: Modify the message bubble UI for both Direct Chat and Channel Chat to exactly match Facebook Messenger's style. Self Messages: Blue bubble with white text. Other Messages: Gray bubble with black text. Corner Rounding (Messenger-style): Topmost bubble: Top-left, top-right, bottom-left corners fully rounded; bottom-right corner slightly rounded. Bottommost bubble: Top-left, bottom-left, bottom-right corners fully rounded; top-right corner slightly rounded. Middle bubbles: Top-left and bottom-left corners fully rounded; top-right and bottom-right corners slightly rounded. Ensure the design is pixel-perfect and consistent across all chat types.
PIN-Based Lock Screen: Implement a mandatory 6-digit numeric PIN (no Face ID) for app access. After selecting a user from the list (existing login flow), prompt the user to set a 6-digit PIN on first login. Store the PIN securely in the iOS Keychain. Require the PIN every time the app is reopened, minimized, or killed (immediate lock screen activation). Provide a backend or server-side mechanism to reset the PIN if the user forgets it (e.g., via email or admin reset). Ensure the lock screen UI is clean, secure, and user-friendly.
App Privacy (Zero Traces): Configure the app to be hidden from Siri and app searches. Prevent the app from appearing in Siri search results, App Library searches, or Siri Suggestions. Ensure no traces of the app are visible in iOS search functionalities.
Preserve Existing Functionality: Do not modify any existing features, including but not limited to read receipts, user presence indicators, timestamps, and any other implemented functionality in the Demo App. Ensure all changes integrate seamlessly without breaking the existing codebase.