From e9720391b77a319ed92890de5aa39b2427146bd7 Mon Sep 17 00:00:00 2001 From: TZGyn Date: Tue, 22 Sep 2026 22:28:46 +0800 Subject: [PATCH] Add a black and white Monero app icon --- apps/ios/Branding/README.md | 23 +++++ apps/ios/Branding/logo-light.png | Bin 0 -> 35182 bytes apps/ios/Branding/logo.svg | 17 ++++ apps/ios/Branding/make-icons.swift | 81 ++++++++++++++++++ .../AppIcon.appiconset/AppIcon-1024.png | Bin 0 -> 33329 bytes .../AppIcon.appiconset/Contents.json | 14 +++ apps/ios/Koins/Assets.xcassets/Contents.json | 6 ++ apps/ios/project.yml | 1 + 8 files changed, 142 insertions(+) create mode 100644 apps/ios/Branding/README.md create mode 100644 apps/ios/Branding/logo-light.png create mode 100644 apps/ios/Branding/logo.svg create mode 100644 apps/ios/Branding/make-icons.swift create mode 100644 apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png create mode 100644 apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 apps/ios/Koins/Assets.xcassets/Contents.json diff --git a/apps/ios/Branding/README.md b/apps/ios/Branding/README.md new file mode 100644 index 0000000..740cd86 --- /dev/null +++ b/apps/ios/Branding/README.md @@ -0,0 +1,23 @@ +# Branding + +`logo.svg` is the source artwork: the Monero monogram in black and white — +two outer legs, a central V descending onto a full-width base bar, one uniform +stroke width (118 of 1024) so it stays legible at 60 px. + +iOS cannot use SVG for app icons, so the PNGs in +`Koins/Assets.xcassets/AppIcon.appiconset` are rendered from the same geometry: + +```sh +cd apps/ios +swift Branding/make-icons.swift Koins/Assets.xcassets/AppIcon.appiconset +``` + +That writes the 1024×1024 icon (black ground, white mark, no alpha channel — +the App Store rejects icons with alpha) plus `Branding/logo-light.png`, the +inverted variant. + +The asset catalog uses the single-size format, so Xcode derives every size the +device needs from the 1024. + +Note: the Monero name and mark are the Monero Project's; check their brand +guidance before shipping this publicly. diff --git a/apps/ios/Branding/logo-light.png b/apps/ios/Branding/logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..c227282e6c9924130f816d1bdcd71c09c9678953 GIT binary patch literal 35182 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 CrEHA= literal 0 HcmV?d00001 diff --git a/apps/ios/Branding/logo.svg b/apps/ios/Branding/logo.svg new file mode 100644 index 0000000..120ccdf --- /dev/null +++ b/apps/ios/Branding/logo.svg @@ -0,0 +1,17 @@ + + Koins — Monero mark (monochrome) + + + + + + + + diff --git a/apps/ios/Branding/make-icons.swift b/apps/ios/Branding/make-icons.swift new file mode 100644 index 0000000..25be929 --- /dev/null +++ b/apps/ios/Branding/make-icons.swift @@ -0,0 +1,81 @@ +// Regenerates the app icon PNGs from the same geometry as Branding/logo.svg. +// +// cd apps/ios +// swift Branding/make-icons.swift Koins/Assets.xcassets/AppIcon.appiconset +// +// iOS cannot use SVG for app icons, so the SVG is the source artwork and this +// script produces the raster the asset catalog needs. It also writes +// Branding/logo-light.png (white ground, black mark). +import AppKit +import CoreGraphics +import Foundation + +// Draws the same geometry as Branding/logo.svg with CoreGraphics, because iOS +// app icons must be raster images. +func drawIcon(size: CGFloat, inverted: Bool = false) -> CGImage? { + let scale = size / 1024.0 + let colorSpace = CGColorSpaceCreateDeviceRGB() + guard let context = CGContext(data: nil, + width: Int(size), + height: Int(size), + bitsPerComponent: 8, + bytesPerRow: 0, + space: colorSpace, + bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue) else { return nil } + + let background = inverted ? NSColor.white : NSColor.black + let foreground = inverted ? NSColor.black : NSColor.white + context.setFillColor(background.cgColor) + context.fill(CGRect(x: 0, y: 0, width: size, height: size)) + + context.setStrokeColor(foreground.cgColor) + context.setLineWidth(118 * scale) + context.setLineCap(.butt) + context.setLineJoin(.miter) + + func point(_ x: CGFloat, _ y: CGFloat) -> CGPoint { + // SVG y grows downwards, CoreGraphics grows upwards. + CGPoint(x: x * scale, y: size - y * scale) + } + + // Left leg continuing into the central V (one path, so the top corner is a + // clean miter rather than two overlapping strokes). + context.beginPath() + context.move(to: point(279, 758)) + context.addLine(to: point(279, 280)) + context.addLine(to: point(512, 640)) + context.strokePath() + + // Right leg, mirrored. + context.beginPath() + context.move(to: point(745, 758)) + context.addLine(to: point(745, 280)) + context.addLine(to: point(512, 640)) + context.strokePath() + + // Full-width bar across the base. + context.beginPath() + context.move(to: point(220, 699)) + context.addLine(to: point(804, 699)) + context.strokePath() + + return context.makeImage() +} + +func write(_ image: CGImage, to path: String) { + let rep = NSBitmapImageRep(cgImage: image) + guard let data = rep.representation(using: .png, properties: [:]) else { return } + try? data.write(to: URL(fileURLWithPath: path)) + print("wrote \(path)") +} + +let outputDir = CommandLine.arguments.count > 1 ? CommandLine.arguments[1] : "/tmp" +try? FileManager.default.createDirectory(atPath: outputDir, withIntermediateDirectories: true) + +if let icon = drawIcon(size: 1024) { + write(icon, to: "\(outputDir)/AppIcon-1024.png") +} +// A light variant, handy for other surfaces (white background, black mark). +if let light = drawIcon(size: 1024, inverted: true) { + write(light, to: "\(outputDir)/AppIcon-light-1024.png") +} diff --git a/apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png b/apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce8d77d2eb3046b8da5b95e7ace1deaa66525bb GIT binary patch literal 33329 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 LwT3y%T@L>b#lZWF literal 0 HcmV?d00001 diff --git a/apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..f22e10c --- /dev/null +++ b/apps/ios/Koins/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon-1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/Koins/Assets.xcassets/Contents.json b/apps/ios/Koins/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/apps/ios/Koins/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/project.yml b/apps/ios/project.yml index 5f5daca..7e68967 100644 --- a/apps/ios/project.yml +++ b/apps/ios/project.yml @@ -29,6 +29,7 @@ targets: CODE_SIGN_STYLE: Automatic DEVELOPMENT_TEAM: RX6767S6BW CODE_SIGNING_ALLOWED[sdk=iphonesimulator*]: NO + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon SWIFT_OBJC_BRIDGING_HEADER: Koins/Bridge/Koins-Bridging-Header.h OTHER_LDFLAGS[sdk=iphoneos*]: - "$(inherited)"