Skip to content

Commit 66d4cc2

Browse files
authored
feat(ios): add getting-started example (#499)
1 parent 33ce614 commit 66d4cc2

File tree

11 files changed

+658
-0
lines changed

11 files changed

+658
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# InstantSearch iOS getting started sample
2+
3+
This sample shows how to get started on building your search experience by easily adding common InstantSearch components.
4+
5+
## Get started
6+
7+
Clone the getting started sample:
8+
9+
```sh
10+
curl https://codeload.github.com/algolia/doc-code-samples/tar.gz/master | tar -xz --strip=2 doc-code-samples-master/instantsearch-ios/getting-started
11+
```
12+
13+
Open `SearchApp.xcodeproj` in Xcode, and run the app on a simulator or device.
14+
15+
## Additional resources
16+
Learn more about InstantSearch iOS [widgets](https://www.algolia.com/doc/guides/building-search-ui/widgets/showcase/ios/) in the Algolia documentation.
Lines changed: 353 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,353 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 77;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
25A9E5EB2E3CBC61003F2C5E /* InstantSearchSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 25A9E5EA2E3CBC61003F2C5E /* InstantSearchSwiftUI */; };
11+
/* End PBXBuildFile section */
12+
13+
/* Begin PBXFileReference section */
14+
25A9E5DB2E3CBBFB003F2C5E /* SearchApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SearchApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
15+
/* End PBXFileReference section */
16+
17+
/* Begin PBXFileSystemSynchronizedRootGroup section */
18+
25A9E5DD2E3CBBFB003F2C5E /* SearchApp */ = {
19+
isa = PBXFileSystemSynchronizedRootGroup;
20+
path = SearchApp;
21+
sourceTree = "<group>";
22+
};
23+
/* End PBXFileSystemSynchronizedRootGroup section */
24+
25+
/* Begin PBXFrameworksBuildPhase section */
26+
25A9E5D82E3CBBFB003F2C5E /* Frameworks */ = {
27+
isa = PBXFrameworksBuildPhase;
28+
buildActionMask = 2147483647;
29+
files = (
30+
25A9E5EB2E3CBC61003F2C5E /* InstantSearchSwiftUI in Frameworks */,
31+
);
32+
runOnlyForDeploymentPostprocessing = 0;
33+
};
34+
/* End PBXFrameworksBuildPhase section */
35+
36+
/* Begin PBXGroup section */
37+
25A9E5D22E3CBBFB003F2C5E = {
38+
isa = PBXGroup;
39+
children = (
40+
25A9E5DD2E3CBBFB003F2C5E /* SearchApp */,
41+
25A9E5DC2E3CBBFB003F2C5E /* Products */,
42+
);
43+
sourceTree = "<group>";
44+
};
45+
25A9E5DC2E3CBBFB003F2C5E /* Products */ = {
46+
isa = PBXGroup;
47+
children = (
48+
25A9E5DB2E3CBBFB003F2C5E /* SearchApp.app */,
49+
);
50+
name = Products;
51+
sourceTree = "<group>";
52+
};
53+
/* End PBXGroup section */
54+
55+
/* Begin PBXNativeTarget section */
56+
25A9E5DA2E3CBBFB003F2C5E /* SearchApp */ = {
57+
isa = PBXNativeTarget;
58+
buildConfigurationList = 25A9E5E62E3CBBFC003F2C5E /* Build configuration list for PBXNativeTarget "SearchApp" */;
59+
buildPhases = (
60+
25A9E5D72E3CBBFB003F2C5E /* Sources */,
61+
25A9E5D82E3CBBFB003F2C5E /* Frameworks */,
62+
25A9E5D92E3CBBFB003F2C5E /* Resources */,
63+
);
64+
buildRules = (
65+
);
66+
dependencies = (
67+
);
68+
fileSystemSynchronizedGroups = (
69+
25A9E5DD2E3CBBFB003F2C5E /* SearchApp */,
70+
);
71+
name = SearchApp;
72+
packageProductDependencies = (
73+
25A9E5EA2E3CBC61003F2C5E /* InstantSearchSwiftUI */,
74+
);
75+
productName = SearchApp;
76+
productReference = 25A9E5DB2E3CBBFB003F2C5E /* SearchApp.app */;
77+
productType = "com.apple.product-type.application";
78+
};
79+
/* End PBXNativeTarget section */
80+
81+
/* Begin PBXProject section */
82+
25A9E5D32E3CBBFB003F2C5E /* Project object */ = {
83+
isa = PBXProject;
84+
attributes = {
85+
BuildIndependentTargetsInParallel = 1;
86+
LastSwiftUpdateCheck = 1640;
87+
LastUpgradeCheck = 1640;
88+
TargetAttributes = {
89+
25A9E5DA2E3CBBFB003F2C5E = {
90+
CreatedOnToolsVersion = 16.4;
91+
};
92+
};
93+
};
94+
buildConfigurationList = 25A9E5D62E3CBBFB003F2C5E /* Build configuration list for PBXProject "SearchApp" */;
95+
developmentRegion = en;
96+
hasScannedForEncodings = 0;
97+
knownRegions = (
98+
en,
99+
Base,
100+
);
101+
mainGroup = 25A9E5D22E3CBBFB003F2C5E;
102+
minimizedProjectReferenceProxies = 1;
103+
packageReferences = (
104+
25A9E5E92E3CBC61003F2C5E /* XCRemoteSwiftPackageReference "instantsearch-ios" */,
105+
);
106+
preferredProjectObjectVersion = 77;
107+
productRefGroup = 25A9E5DC2E3CBBFB003F2C5E /* Products */;
108+
projectDirPath = "";
109+
projectRoot = "";
110+
targets = (
111+
25A9E5DA2E3CBBFB003F2C5E /* SearchApp */,
112+
);
113+
};
114+
/* End PBXProject section */
115+
116+
/* Begin PBXResourcesBuildPhase section */
117+
25A9E5D92E3CBBFB003F2C5E /* Resources */ = {
118+
isa = PBXResourcesBuildPhase;
119+
buildActionMask = 2147483647;
120+
files = (
121+
);
122+
runOnlyForDeploymentPostprocessing = 0;
123+
};
124+
/* End PBXResourcesBuildPhase section */
125+
126+
/* Begin PBXSourcesBuildPhase section */
127+
25A9E5D72E3CBBFB003F2C5E /* Sources */ = {
128+
isa = PBXSourcesBuildPhase;
129+
buildActionMask = 2147483647;
130+
files = (
131+
);
132+
runOnlyForDeploymentPostprocessing = 0;
133+
};
134+
/* End PBXSourcesBuildPhase section */
135+
136+
/* Begin XCBuildConfiguration section */
137+
25A9E5E42E3CBBFC003F2C5E /* Debug */ = {
138+
isa = XCBuildConfiguration;
139+
buildSettings = {
140+
ALWAYS_SEARCH_USER_PATHS = NO;
141+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
142+
CLANG_ANALYZER_NONNULL = YES;
143+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
144+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
145+
CLANG_ENABLE_MODULES = YES;
146+
CLANG_ENABLE_OBJC_ARC = YES;
147+
CLANG_ENABLE_OBJC_WEAK = YES;
148+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
149+
CLANG_WARN_BOOL_CONVERSION = YES;
150+
CLANG_WARN_COMMA = YES;
151+
CLANG_WARN_CONSTANT_CONVERSION = YES;
152+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
153+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
154+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
155+
CLANG_WARN_EMPTY_BODY = YES;
156+
CLANG_WARN_ENUM_CONVERSION = YES;
157+
CLANG_WARN_INFINITE_RECURSION = YES;
158+
CLANG_WARN_INT_CONVERSION = YES;
159+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
160+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
161+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
162+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
163+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
164+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
165+
CLANG_WARN_STRICT_PROTOTYPES = YES;
166+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
167+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
168+
CLANG_WARN_UNREACHABLE_CODE = YES;
169+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
170+
COPY_PHASE_STRIP = NO;
171+
DEBUG_INFORMATION_FORMAT = dwarf;
172+
ENABLE_STRICT_OBJC_MSGSEND = YES;
173+
ENABLE_TESTABILITY = YES;
174+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
175+
GCC_C_LANGUAGE_STANDARD = gnu17;
176+
GCC_DYNAMIC_NO_PIC = NO;
177+
GCC_NO_COMMON_BLOCKS = YES;
178+
GCC_OPTIMIZATION_LEVEL = 0;
179+
GCC_PREPROCESSOR_DEFINITIONS = (
180+
"DEBUG=1",
181+
"$(inherited)",
182+
);
183+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
184+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
185+
GCC_WARN_UNDECLARED_SELECTOR = YES;
186+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
187+
GCC_WARN_UNUSED_FUNCTION = YES;
188+
GCC_WARN_UNUSED_VARIABLE = YES;
189+
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
190+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
191+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
192+
MTL_FAST_MATH = YES;
193+
ONLY_ACTIVE_ARCH = YES;
194+
SDKROOT = iphoneos;
195+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
196+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
197+
};
198+
name = Debug;
199+
};
200+
25A9E5E52E3CBBFC003F2C5E /* Release */ = {
201+
isa = XCBuildConfiguration;
202+
buildSettings = {
203+
ALWAYS_SEARCH_USER_PATHS = NO;
204+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
205+
CLANG_ANALYZER_NONNULL = YES;
206+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
207+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
208+
CLANG_ENABLE_MODULES = YES;
209+
CLANG_ENABLE_OBJC_ARC = YES;
210+
CLANG_ENABLE_OBJC_WEAK = YES;
211+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
212+
CLANG_WARN_BOOL_CONVERSION = YES;
213+
CLANG_WARN_COMMA = YES;
214+
CLANG_WARN_CONSTANT_CONVERSION = YES;
215+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
216+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
217+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
218+
CLANG_WARN_EMPTY_BODY = YES;
219+
CLANG_WARN_ENUM_CONVERSION = YES;
220+
CLANG_WARN_INFINITE_RECURSION = YES;
221+
CLANG_WARN_INT_CONVERSION = YES;
222+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
223+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
224+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
225+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
226+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
227+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
228+
CLANG_WARN_STRICT_PROTOTYPES = YES;
229+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
230+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
231+
CLANG_WARN_UNREACHABLE_CODE = YES;
232+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
233+
COPY_PHASE_STRIP = NO;
234+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
235+
ENABLE_NS_ASSERTIONS = NO;
236+
ENABLE_STRICT_OBJC_MSGSEND = YES;
237+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
238+
GCC_C_LANGUAGE_STANDARD = gnu17;
239+
GCC_NO_COMMON_BLOCKS = YES;
240+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
241+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
242+
GCC_WARN_UNDECLARED_SELECTOR = YES;
243+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
244+
GCC_WARN_UNUSED_FUNCTION = YES;
245+
GCC_WARN_UNUSED_VARIABLE = YES;
246+
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
247+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
248+
MTL_ENABLE_DEBUG_INFO = NO;
249+
MTL_FAST_MATH = YES;
250+
SDKROOT = iphoneos;
251+
SWIFT_COMPILATION_MODE = wholemodule;
252+
VALIDATE_PRODUCT = YES;
253+
};
254+
name = Release;
255+
};
256+
25A9E5E72E3CBBFC003F2C5E /* Debug */ = {
257+
isa = XCBuildConfiguration;
258+
buildSettings = {
259+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
260+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
261+
CODE_SIGN_STYLE = Automatic;
262+
CURRENT_PROJECT_VERSION = 1;
263+
ENABLE_PREVIEWS = YES;
264+
GENERATE_INFOPLIST_FILE = YES;
265+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
266+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
267+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
268+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
269+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
270+
LD_RUNPATH_SEARCH_PATHS = (
271+
"$(inherited)",
272+
"@executable_path/Frameworks",
273+
);
274+
MARKETING_VERSION = 1.0;
275+
PRODUCT_BUNDLE_IDENTIFIER = com.example.SearchApp;
276+
PRODUCT_NAME = "$(TARGET_NAME)";
277+
SWIFT_EMIT_LOC_STRINGS = YES;
278+
SWIFT_VERSION = 5.0;
279+
TARGETED_DEVICE_FAMILY = "1,2";
280+
};
281+
name = Debug;
282+
};
283+
25A9E5E82E3CBBFC003F2C5E /* Release */ = {
284+
isa = XCBuildConfiguration;
285+
buildSettings = {
286+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
287+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
288+
CODE_SIGN_STYLE = Automatic;
289+
CURRENT_PROJECT_VERSION = 1;
290+
ENABLE_PREVIEWS = YES;
291+
GENERATE_INFOPLIST_FILE = YES;
292+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
293+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
294+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
295+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
296+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
297+
LD_RUNPATH_SEARCH_PATHS = (
298+
"$(inherited)",
299+
"@executable_path/Frameworks",
300+
);
301+
MARKETING_VERSION = 1.0;
302+
PRODUCT_BUNDLE_IDENTIFIER = com.example.SearchApp;
303+
PRODUCT_NAME = "$(TARGET_NAME)";
304+
SWIFT_EMIT_LOC_STRINGS = YES;
305+
SWIFT_VERSION = 5.0;
306+
TARGETED_DEVICE_FAMILY = "1,2";
307+
};
308+
name = Release;
309+
};
310+
/* End XCBuildConfiguration section */
311+
312+
/* Begin XCConfigurationList section */
313+
25A9E5D62E3CBBFB003F2C5E /* Build configuration list for PBXProject "SearchApp" */ = {
314+
isa = XCConfigurationList;
315+
buildConfigurations = (
316+
25A9E5E42E3CBBFC003F2C5E /* Debug */,
317+
25A9E5E52E3CBBFC003F2C5E /* Release */,
318+
);
319+
defaultConfigurationIsVisible = 0;
320+
defaultConfigurationName = Release;
321+
};
322+
25A9E5E62E3CBBFC003F2C5E /* Build configuration list for PBXNativeTarget "SearchApp" */ = {
323+
isa = XCConfigurationList;
324+
buildConfigurations = (
325+
25A9E5E72E3CBBFC003F2C5E /* Debug */,
326+
25A9E5E82E3CBBFC003F2C5E /* Release */,
327+
);
328+
defaultConfigurationIsVisible = 0;
329+
defaultConfigurationName = Release;
330+
};
331+
/* End XCConfigurationList section */
332+
333+
/* Begin XCRemoteSwiftPackageReference section */
334+
25A9E5E92E3CBC61003F2C5E /* XCRemoteSwiftPackageReference "instantsearch-ios" */ = {
335+
isa = XCRemoteSwiftPackageReference;
336+
repositoryURL = "https://github.com/algolia/instantsearch-ios";
337+
requirement = {
338+
kind = upToNextMajorVersion;
339+
minimumVersion = 7.27.0;
340+
};
341+
};
342+
/* End XCRemoteSwiftPackageReference section */
343+
344+
/* Begin XCSwiftPackageProductDependency section */
345+
25A9E5EA2E3CBC61003F2C5E /* InstantSearchSwiftUI */ = {
346+
isa = XCSwiftPackageProductDependency;
347+
package = 25A9E5E92E3CBC61003F2C5E /* XCRemoteSwiftPackageReference "instantsearch-ios" */;
348+
productName = InstantSearchSwiftUI;
349+
};
350+
/* End XCSwiftPackageProductDependency section */
351+
};
352+
rootObject = 25A9E5D32E3CBBFB003F2C5E /* Project object */;
353+
}

instantsearch-ios/getting-started/SearchApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)