Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions V2er.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
0B1A2B3C4D5E6F7081920A01 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0B1A2B3C4D5E6F7081920A02 /* LaunchScreen.storyboard */; };
1AEBC3AC5DAA63523F5448F5 /* RichContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E205F350A3537A3E41B1AFC3 /* RichContentView.swift */; };
28B24CA92EA3460D00F82B2A /* BalanceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28B24CA82EA3460D00F82B2A /* BalanceView.swift */; };
28B24CAB2EA3561400F82B2A /* OnlineStatsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28B24CAA2EA3561400F82B2A /* OnlineStatsInfo.swift */; };
Expand Down Expand Up @@ -184,6 +185,7 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
0B1A2B3C4D5E6F7081920A02 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
28B24CA82EA3460D00F82B2A /* BalanceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BalanceView.swift; sourceTree = "<group>"; };
28B24CAA2EA3561400F82B2A /* OnlineStatsInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnlineStatsInfo.swift; sourceTree = "<group>"; };
31C4B81E79369CDE4880B773 /* RichContentView+Preview.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RichContentView+Preview.swift"; path = "V2er/Sources/RichView/Views/RichContentView+Preview.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -530,6 +532,7 @@
5D436FEE24791C2D00FFA37E /* Assets.xcassets */,
5DEC5D662730F25800B34BC5 /* www */,
5D436FF624791C2D00FFA37E /* Info.plist */,
0B1A2B3C4D5E6F7081920A02 /* LaunchScreen.storyboard */,
5D436FF024791C2D00FFA37E /* Preview Content */,
);
path = V2er;
Expand Down Expand Up @@ -937,6 +940,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
0B1A2B3C4D5E6F7081920A01 /* LaunchScreen.storyboard in Resources */,
5D436FF224791C2D00FFA37E /* Preview Assets.xcassets in Resources */,
5DEC5D7E2730F29000B34BC5 /* image_holder_loading.gif in Resources */,
5DEC5D732730F28F00B34BC5 /* bootstrap.min.css in Resources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000",
"red" : "1.000"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.078",
"green" : "0.071",
"red" : "0.067"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
38 changes: 38 additions & 0 deletions V2er/Assets.xcassets/Colors/SplashLogoColor.colorset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.078",
"green" : "0.071",
"red" : "0.067"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000",
"red" : "1.000"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
25 changes: 25 additions & 0 deletions V2er/Assets.xcassets/SplashLogo.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"images" : [
{
"filename" : "splash_logo.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
Copy link

Copilot AI Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image asset is configured to use only a 1x image (splash_logo.png at 1024x1024) without providing 2x and 3x variants. While the preserves-vector-representation property is set to true (suggesting vector/PDF support), the actual asset is a PNG file, not a vector format.

For optimal display quality on all iOS devices, consider either:

  1. Providing @2x and @3x PNG variants (2048x2048 and 3072x3072), or
  2. Using a PDF vector format with preserves-vector-representation: true to automatically scale to all resolutions

Since the logo is used as a template (for tinting), a PDF vector would be the preferred approach for best quality and smaller bundle size.

Suggested change
"filename" : "splash_logo.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
"filename" : "splash_logo.pdf",
"idiom" : "universal"

Copilot uses AI. Check for mistakes.
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"preserves-vector-representation" : true,
"template-rendering-intent" : "template"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions V2er/LaunchScreen.storyboard
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_12" orientation="portrait" appearance="light"/>
Copy link

Copilot AI Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The storyboard references a hardcoded device size (retina6_12 with 393x852 dimensions) which represents iPhone 14 Pro. While Auto Layout constraints are used (which is good), the hardcoded device reference in line 3 is just for Interface Builder preview purposes and won't affect runtime behavior on different devices.

However, it would be better practice to test on multiple device sizes to ensure the constraints work as expected across all supported iOS devices.

Suggested change
<device id="retina6_12" orientation="portrait" appearance="light"/>

Copilot uses AI. Check for mistakes.
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="SplashLogo" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-hZj">
<rect key="frame" x="146.66666666666666" y="376" width="100" height="100"/>
<color key="tintColor" name="SplashLogoColor"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="4Gu-Yy-jb9"/>
<constraint firstAttribute="height" constant="100" id="Bvb-Bh-X2V"/>
</constraints>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
<color key="backgroundColor" name="SplashBackground"/>
<constraints>
<constraint firstItem="YRO-k0-hZj" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="8N3-Om-IJQ"/>
<constraint firstItem="YRO-k0-hZj" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="Ebl-PI-8DR"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="SplashLogo" width="1024" height="1024"/>
Copy link

Copilot AI Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The storyboard hardcodes the image dimensions as 1024x1024 in the resources section (line 43), but the imageView is constrained to 100x100 points (lines 24-25). While Auto Layout will handle the scaling at runtime using the scaleAspectFit content mode (line 20), the hardcoded dimensions in the resources section are merely informational for Interface Builder.

This is acceptable, but be aware that providing a 1024x1024 PNG for display at 100x100 points means:

  • On 1x devices: The image is scaled down 10.24x
  • On 2x devices: The image is scaled down 5.12x
  • On 3x devices: The image is scaled down 3.41x

This is inefficient in terms of bundle size. Consider using appropriately sized assets or a vector PDF to optimize the app bundle.

Suggested change
<image name="SplashLogo" width="1024" height="1024"/>
<image name="SplashLogo" width="100" height="100"/>

Copilot uses AI. Check for mistakes.
<namedColor name="SplashBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="SplashLogoColor">
<color red="0.066999999999999993" green="0.070999999999999994" blue="0.078" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
Copy link

Copilot AI Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The storyboard includes hardcoded RGB color values in the resources section (lines 44-49) that duplicate the color definitions from the named color sets. This creates a discrepancy where:

  1. The view references named colors SplashBackground and SplashLogoColor (lines 22, 30) which support light/dark mode
  2. But the <resources> section defines fallback RGB values that only represent the light mode colors

This inconsistency could cause issues if the named color assets are not found. Consider removing the hardcoded RGB values from the resources section and relying solely on the named colors, or ensure the fallback values accurately represent both appearance modes.

Suggested change
<namedColor name="SplashBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="SplashLogoColor">
<color red="0.066999999999999993" green="0.070999999999999994" blue="0.078" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

Copilot uses AI. Check for mistakes.
</resources>
</document>
Loading