Skip to content

Commit

Permalink
feat: Add macOS support for progress-view (#42)
Browse files Browse the repository at this point in the history
Co-authored-by: Eloy Durán <[email protected]>
  • Loading branch information
amgleitman and alloy authored Oct 10, 2020
1 parent 6059704 commit 8a57f07
Show file tree
Hide file tree
Showing 34 changed files with 2,548 additions and 27 deletions.
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

[![Build Status][build-badge]][build]
[![Version][version-badge]][package]
![Supports iOS][support-badge]
![Platforms][support-badge]
[![MIT License][license-badge]][license]
[![Lean Core Badge][lean-core-badge]][lean-core-issue]

ProgressBar Component for iOS (based on UIProgressView) and Windows.
ProgressBar Component for macOS, iOS (based on UIProgressView), and Windows.

| iOS | Windows |
| --- | --- |
| <img src="https://user-images.githubusercontent.com/6936373/73007429-e09dd500-3e4f-11ea-85dd-ce06be668975.png" width="320"> | <img src="https://user-images.githubusercontent.com/42554868/87102503-fb4de580-c206-11ea-98f7-b9f911d115f8.gif" width="320" height="500"> >
| macOS | iOS | Windows |
| ----- | --- | --- |
| <img src="https://user-images.githubusercontent.com/717674/90926972-0325ab80-e3a9-11ea-86e3-1f9ca6df60f3.png" width="480"> | <img src="https://user-images.githubusercontent.com/6936373/73007429-e09dd500-3e4f-11ea-85dd-ce06be668975.png" width="320"> | <img src="https://user-images.githubusercontent.com/42554868/87102503-fb4de580-c206-11ea-98f7-b9f911d115f8.gif" width="320" height="500"> >

## Getting started

Expand Down Expand Up @@ -110,6 +110,12 @@ Add ProgressView like this
2. cd into example/ios and run `pod install`
4. cd back into progress-view and run `yarn ios`

#### macOS
1. Clone branch
2. cd into progress-view and run `yarn install`
2. cd into example/macos/example/macos and run `pod install`
4. Open the newly created example.xcworkspace in Xcode, build, and run

## Reference

### Props
Expand Down Expand Up @@ -209,7 +215,7 @@ The library is released under the MIT license. For more information see [`LICENS
[build]: https://circleci.com/gh/react-native-community/progress-view
[version-badge]: https://img.shields.io/npm/v/@react-native-community/progress-view.svg?style=flat-square
[package]: https://www.npmjs.com/package/@react-native-community/progress-view
[support-badge]:https://img.shields.io/badge/platforms-ios-lightgrey.svg?style=flat-square
[support-badge]:https://img.shields.io/badge/platforms-ios%20|%20macos-lightgrey.svg?style=flat-square
[license-badge]: https://img.shields.io/npm/l/@react-native-community/progress-view.svg?style=flat-square
[license]: https://opensource.org/licenses/MIT
[lean-core-badge]: https://img.shields.io/badge/Lean%20Core-Extracted-brightgreen.svg?style=flat-square
Expand Down
2 changes: 2 additions & 0 deletions example/macos/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# CocoaPods
Pods/
9 changes: 9 additions & 0 deletions example/macos/Config/example.debug.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include "example.shared.xcconfig"

DEAD_CODE_STRIPPING = NO
ENABLE_TESTABILITY = YES
GCC_DYNAMIC_NO_PIC = NO
GCC_OPTIMIZATION_LEVEL = 0
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
MTL_ENABLE_DEBUG_INFO = YES
ONLY_ACTIVE_ARCH = YES
6 changes: 6 additions & 0 deletions example/macos/Config/example.release.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "example.shared.xcconfig"

COPY_PHASE_STRIP = YES
ENABLE_NS_ASSERTIONS = NO
MTL_ENABLE_DEBUG_INFO = NO
VALIDATE_PRODUCT = YES
46 changes: 46 additions & 0 deletions example/macos/Config/example.shared.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
PRODUCT_NAME = example

ALWAYS_SEARCH_USER_PATHS = NO
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
CLANG_CXX_LIBRARY = libc++
CLANG_ENABLE_MODULES = YES
CLANG_ENABLE_OBJC_ARC = YES
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
CLANG_WARN_BOOL_CONVERSION = YES
CLANG_WARN_COMMA = YES
CLANG_WARN_CONSTANT_CONVERSION = YES
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
CLANG_WARN_EMPTY_BODY = YES
CLANG_WARN_ENUM_CONVERSION = YES
CLANG_WARN_INFINITE_RECURSION = YES
CLANG_WARN_INT_CONVERSION = YES
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
CLANG_WARN_STRICT_PROTOTYPES = YES
CLANG_WARN_SUSPICIOUS_MOVE = YES
CLANG_WARN_UNREACHABLE_CODE = YES
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CURRENT_PROJECT_VERSION = 1
ENABLE_STRICT_OBJC_MSGSEND = YES
GCC_C_LANGUAGE_STANDARD = gnu99
GCC_NO_COMMON_BLOCKS = YES
GCC_SYMBOLS_PRIVATE_EXTERN = NO
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
GCC_WARN_UNDECLARED_SELECTOR = YES
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_VARIABLE = YES
INFOPLIST_FILE = example-macos/Info.plist
LD_RUNPATH_SEARCH_PATHS = /usr/lib/swift $(inherited) @executable_path/Frameworks
LIBRARY_SEARCH_PATHS = $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) $(inherited)
MACOSX_DEPLOYMENT_TARGET = 10.14
OTHER_LDFLAGS = $(inherited) -ObjC -lc++
PRODUCT_BUNDLE_IDENTIFIER = org.reactjs.native.$(PRODUCT_NAME:rfc1034identifier)
SDKROOT = macosx
43 changes: 43 additions & 0 deletions example/macos/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
require_relative '../../node_modules/@react-native-community/cli-platform-ios/native_modules'

abstract_target 'Shared' do
pod 'react-native-progress-view', :path => '../..'
# Pods for example
pod 'FBLazyVector', :path => '../../node_modules/react-native-macos/Libraries/FBLazyVector'
pod 'FBReactNativeSpec', :path => '../../node_modules/react-native-macos/Libraries/FBReactNativeSpec'
pod 'RCTRequired', :path => '../../node_modules/react-native-macos/Libraries/RCTRequired'
pod 'RCTTypeSafety', :path => '../../node_modules/react-native-macos/Libraries/TypeSafety'
pod 'React', :path => '../../node_modules/react-native-macos/'
pod 'React-Core', :path => '../../node_modules/react-native-macos/'
pod 'React-CoreModules', :path => '../../node_modules/react-native-macos/React/CoreModules'
pod 'React-Core/DevSupport', :path => '../../node_modules/react-native-macos/'
pod 'React-RCTActionSheet', :path => '../../node_modules/react-native-macos/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../../node_modules/react-native-macos/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../../node_modules/react-native-macos/Libraries/Blob'
pod 'React-RCTImage', :path => '../../node_modules/react-native-macos/Libraries/Image'
pod 'React-RCTLinking', :path => '../../node_modules/react-native-macos/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../../node_modules/react-native-macos/Libraries/Network'
pod 'React-RCTSettings', :path => '../../node_modules/react-native-macos/Libraries/Settings'
pod 'React-RCTText', :path => '../../node_modules/react-native-macos/Libraries/Text'
pod 'React-RCTVibration', :path => '../../node_modules/react-native-macos/Libraries/Vibration'
pod 'React-Core/RCTWebSocket', :path => '../../node_modules/react-native-macos/'

pod 'React-cxxreact', :path => '../../node_modules/react-native-macos/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../../node_modules/react-native-macos/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../../node_modules/react-native-macos/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../../node_modules/react-native-macos/ReactCommon/jsinspector'
pod 'ReactCommon/callinvoker', :path => '../../node_modules/react-native-macos/ReactCommon'
pod 'ReactCommon/turbomodule/core', :path => '../../node_modules/react-native-macos/ReactCommon'
pod 'Yoga', :path => '../../node_modules/react-native-macos/ReactCommon/yoga'

pod 'boost-for-react-native', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/boost-for-react-native.podspec'
pod 'DoubleConversion', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/glog.podspec'
pod 'RCT-Folly', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/RCT-Folly.podspec'

target 'example-macOS' do
platform :macos, '10.14'
use_native_modules!
# Pods specifically for macOS target
end
end
Loading

0 comments on commit 8a57f07

Please sign in to comment.