Skip to content

Commit 0fbf368

Browse files
authored
[ios_platform_images] migrate objC to swift (flutter#4847)
`ios_platform_images` part of flutter#119101 Migrate ios_platform_images to Swift.
1 parent 2181c4f commit 0fbf368

22 files changed

+402
-392
lines changed

packages/ios_platform_images/AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,4 @@ Aleksandr Yurkovskiy <[email protected]>
6464
Anton Borries <[email protected]>
6565
6666
Rahul Raj <[email protected]>
67+
Mairramer <[email protected]>

packages/ios_platform_images/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.2.3
2+
3+
* Migrates to a Swift implementation.
4+
15
## 0.2.2+3
26

37
* Converts platform communication to Pigeon.

packages/ios_platform_images/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ Widget build(BuildContext context) {
3232
}
3333
```
3434

35-
`IosPlatformImages.load` functions like [[UIImage imageNamed:]](https://developer.apple.com/documentation/uikit/uiimage/1624146-imagenamed).
35+
`IosPlatformImages.load` works similarly to [`UIImage(named:)`](https://developer.apple.com/documentation/uikit/uiimage/1624146-imagenamed).
3636

3737
### Flutter->iOS Example
3838

39-
```objc
40-
#import <ios_platform_images/UIImage+ios_platform_images.h>
39+
```swift
40+
import ios_platform_images
4141

42-
static UIImageView* MakeImage() {
43-
UIImage* image = [UIImage flutterImageWithName:@"assets/foo.png"];
44-
return [[UIImageView alloc] initWithImage:image];
42+
func makeImage() -> UIImageView {
43+
let image = UIImage.flutterImageWithName("assets/foo.png")
44+
return UIImageView(image: image)
4545
}
4646
```

packages/ios_platform_images/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 70 additions & 43 deletions
Large diffs are not rendered by default.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

packages/ios_platform_images/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,20 @@
2020
ReferencedContainer = "container:Runner.xcodeproj">
2121
</BuildableReference>
2222
</BuildActionEntry>
23+
<BuildActionEntry
24+
buildForTesting = "YES"
25+
buildForRunning = "NO"
26+
buildForProfiling = "NO"
27+
buildForArchiving = "NO"
28+
buildForAnalyzing = "NO">
29+
<BuildableReference
30+
BuildableIdentifier = "primary"
31+
BlueprintIdentifier = "F76AC1BD266713D00040C8BC"
32+
BuildableName = "RunnerTests.xctest"
33+
BlueprintName = "RunnerTests"
34+
ReferencedContainer = "container:Runner.xcodeproj">
35+
</BuildableReference>
36+
</BuildActionEntry>
2337
</BuildActionEntries>
2438
</BuildAction>
2539
<TestAction

packages/ios_platform_images/example/ios/Runner/AppDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import UIKit
65
import Flutter
6+
import UIKit
77

88
@UIApplicationMain
99
@objc class AppDelegate: FlutterAppDelegate {

packages/ios_platform_images/example/ios/RunnerTests/IosPlatformImagesTests.m

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Copyright 2013 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import Flutter
6+
import XCTest
7+
8+
@testable import ios_platform_images
9+
10+
class IosPlatformImagesTests: XCTestCase {
11+
let plugin = IosPlatformImagesPlugin()
12+
13+
func testLoadImage() {
14+
let assetName = "flutter"
15+
let imageData = plugin.loadImage(name: assetName)
16+
17+
XCTAssertNotNil(imageData)
18+
XCTAssertNotNil(imageData?.data)
19+
}
20+
21+
func testLoadImageNotFound() {
22+
let assetName = "notFound"
23+
let imageData = plugin.loadImage(name: assetName)
24+
25+
XCTAssertNil(imageData)
26+
}
27+
28+
func testResolveURL() {
29+
let resourceName = "textfile"
30+
do {
31+
let url = try plugin.resolveUrl(resourceName: resourceName, extension: nil)
32+
XCTAssertNotNil(url)
33+
XCTAssertTrue(url?.contains(resourceName) ?? false)
34+
} catch {
35+
XCTFail("Error while resolving URL: \(error)")
36+
}
37+
}
38+
39+
func testResolveURLNotFound() {
40+
do {
41+
let url = try plugin.resolveUrl(resourceName: "notFound", extension: nil)
42+
XCTAssertNil(url)
43+
} catch {
44+
XCTFail("Error while resolving URL: \(error)")
45+
}
46+
}
47+
48+
}

packages/ios_platform_images/ios/Classes/IosPlatformImagesPlugin.h

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

0 commit comments

Comments
 (0)