Javier Cicchelli 9bcdaa697b [Setup] Basic project structure (#1)
This PR contains all the work related to setting up this project as required to implement the [Assignment](https://repo.rock-n-code.com/rock-n-code/deep-linking-assignment/wiki/Assignment) on top, as intended.

To summarise this work:
- [x] created a new **Xcode** project;
- [x] cloned the `Wikipedia` app and inserted it into the **Xcode** project;
- [x] created the `Locations` app and also, its `Libraries` package;
- [x] created the `Shared` package to share dependencies between the apps;
- [x] added a `Makefile` file and implemented some **environment** and **help** commands.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: rock-n-code/deep-linking-assignment#1
2023-04-08 18:37:13 +00:00

55 lines
1.9 KiB
Objective-C

@import UIKit;
@import UserNotifications;
@class WMFTheme;
@class MWKDataStore;
@class WMFTheme;
@class ReadingList;
NS_ASSUME_NONNULL_BEGIN
extern NSString *const WMFLanguageVariantAlertsLibraryVersion; // NSNumber
@interface WMFAppViewController : UITabBarController <UNUserNotificationCenterDelegate>
@property (nonatomic, readonly, nullable) UINavigationController *currentNavigationController;
@property (nonatomic, readonly) WMFTheme *theme;
@property (nonatomic, readonly) MWKDataStore *dataStore;
- (void)launchAppInWindow:(UIWindow *)window waitToResumeApp:(BOOL)waitToResumeApp;
- (void)showSplashView;
- (void)hideSplashViewAnimated:(BOOL)animated;
- (void)hideSplashScreenAndResumeApp; // Updates explore feed & other heavy network lifitng
- (void)processShortcutItem:(UIApplicationShortcutItem *)item completion:(void (^)(BOOL))completion;
- (BOOL)processUserActivity:(NSUserActivity *)activity animated:(BOOL)animated completion:(dispatch_block_t)done;
- (void)performBackgroundFetchWithCompletion:(void (^)(UIBackgroundFetchResult))completion;
- (void)performDatabaseHousekeepingWithCompletion:(void (^)(NSError *))completion;
- (void)applyTheme:(WMFTheme *)theme;
- (void)showSearchInCurrentNavigationController;
- (void)showImportedReadingList:(ReadingList *)readingList;
- (void)setRemoteNotificationRegistrationStatusWithDeviceToken: (nullable NSData *)deviceToken error: (nullable NSError *)error;
/// Returning WMFArticleViewController (which is ArticleViewController in Swift) makes this not work from Swift
- (void)swiftCompatibleShowArticleWithURL:(NSURL *)articleURL animated:(BOOL)animated completion:(nonnull dispatch_block_t)completion;
@end
// Methods exposed in header for use in WMFAppViewController+Extensions.swift
@interface WMFAppViewController (SwiftInterfaces)
- (void)dismissPresentedViewControllers;
- (void)showSettingsAnimated:(BOOL)animated;
- (void)logTappedSettingsFromExplore;
@end
NS_ASSUME_NONNULL_END