├── app.json
├── screenshot
├── feed.png
├── food.png
├── foods.png
├── profile.png
└── info_detail.png
├── src
├── resource
│ ├── ic_edit.png
│ ├── ic_male.png
│ ├── ic_menu.png
│ ├── ic_more.png
│ ├── ic_scan.png
│ ├── img_add.png
│ ├── shumei.png
│ ├── ic_avatar.png
│ ├── ic_clear.png
│ ├── ic_collect.png
│ ├── ic_no wifi.png
│ ├── ic_recipe.png
│ ├── ic_refresh.png
│ ├── ic_search.png
│ ├── ic_setting.png
│ ├── ic_share.png
│ ├── ic_tab_my.png
│ ├── ic_trash.png
│ ├── icon_phone.png
│ ├── redButton.png
│ ├── shop_cart.png
│ ├── ic_back_dark.png
│ ├── ic_delicious.png
│ ├── ic_feed_like.png
│ ├── ic_feed_nav.png
│ ├── ic_feed_next.png
│ ├── ic_feed_read.png
│ ├── ic_head_logo.png
│ ├── ic_libary_vs.png
│ ├── ic_my_carts.png
│ ├── ic_my_nobody.png
│ ├── ic_my_order.png
│ ├── ic_my_photos.png
│ ├── ic_my_right.png
│ ├── ic_my_upload.png
│ ├── ic_news_buy.png
│ ├── ic_scan_gray.png
│ ├── ic_shop_more.png
│ ├── ic_shop_news.png
│ ├── ic_tab_shop.png
│ ├── ic_taste bad.png
│ ├── icon_account.png
│ ├── icon_arrowup.png
│ ├── img_home_bg.png
│ ├── img_intro_1.png
│ ├── img_intro_2.png
│ ├── img_intro_3.png
│ ├── img_intro_4.png
│ ├── img_loading.png
│ ├── img_meal_tip.png
│ ├── img_my_head.png
│ ├── img_tip_left.png
│ ├── orangeButton.png
│ ├── ic_aboutLight.png
│ ├── ic_account_qq.png
│ ├── ic_addfood_scan.png
│ ├── ic_address_edit.png
│ ├── ic_arrow_down.png
│ ├── ic_back_search.png
│ ├── ic_back_white.png
│ ├── ic_bullet_dark.png
│ ├── ic_bullet_white.png
│ ├── ic_contrast_add.png
│ ├── ic_deatil_keep.png
│ ├── ic_edit_small.png
│ ├── ic_feed_camera.png
│ ├── ic_feed_search.png
│ ├── ic_feed_video.png
│ ├── ic_feed_watch.png
│ ├── ic_health_kit.png
│ ├── ic_home_analyse.png
│ ├── ic_home_search.png
│ ├── ic_input_search.png
│ ├── ic_libary_scan.png
│ ├── ic_method_brand.png
│ ├── ic_method_cook.png
│ ├── ic_my_address.png
│ ├── ic_my_analyse.png
│ ├── ic_my_collect.png
│ ├── ic_my_message.png
│ ├── ic_my_setting.png
│ ├── ic_myphoto_news.png
│ ├── ic_news_collect.png
│ ├── ic_news_share.png
│ ├── ic_no_comment.png
│ ├── ic_photo_delete.png
│ ├── ic_photo_empty.png
│ ├── ic_photo_more.png
│ ├── ic_photo_share.png
│ ├── ic_scan_cancel.png
│ ├── ic_scan_compare.png
│ ├── ic_scan_delete.png
│ ├── ic_scan_goback.png
│ ├── ic_share_black.png
│ ├── ic_shop_carts.png
│ ├── ic_shop_comment.png
│ ├── ic_shop_element.png
│ ├── ic_tab_homepage.png
│ ├── ic_tab_search.png
│ ├── ic_tag_default.png
│ ├── ic_tag_selected.png
│ ├── ic_upload_empty.png
│ ├── ic_upload_fail.png
│ ├── ic_upload_wait.png
│ ├── icon_arrowdown.png
│ ├── icon_password.png
│ ├── img_analyze_bg.png
│ ├── img_discount_bg.png
│ ├── img_food_shadow.png
│ ├── img_guide_mask.png
│ ├── img_meal_none.png
│ ├── img_my_navbar.png
│ ├── img_remind_left.png
│ ├── img_scan_area.png
│ ├── img_scan_line.png
│ ├── img_shop_stripe.png
│ ├── img_tip_right.png
│ ├── img_xpush_tip.png
│ ├── ic_account_boohee.png
│ ├── ic_account_draft.png
│ ├── ic_account_favour.png
│ ├── ic_account_myself.png
│ ├── ic_account_phone.png
│ ├── ic_account_upload.png
│ ├── ic_account_wechat.png
│ ├── ic_account_weibo.png
│ ├── ic_address_empty.png
│ ├── ic_album_default.png
│ ├── ic_album_selected.png
│ ├── ic_analyze_cancel.png
│ ├── ic_camera_default.png
│ ├── ic_cancel_default.png
│ ├── ic_choose_default.png
│ ├── ic_collect_empty.png
│ ├── ic_collect_select.png
│ ├── ic_comment_write.png
│ ├── ic_deatil_comment.png
│ ├── ic_female_default.png
│ ├── ic_filter_default.png
│ ├── ic_food_light_red.png
│ ├── ic_food_ordering.png
│ ├── ic_homepage_like.png
│ ├── ic_homepage_scan.png
│ ├── ic_male_selected.png
│ ├── ic_method_season.png
│ ├── ic_my_order_item.png
│ ├── ic_payment_alipay.png
│ ├── ic_payment_wechat.png
│ ├── ic_photo_comment.png
│ ├── ic_profile_avatar.png
│ ├── ic_red_light_big.png
│ ├── ic_report_delete.png
│ ├── ic_scale_selected.png
│ ├── ic_search_compare.png
│ ├── ic_search_history.png
│ ├── ic_share_to_weibo.png
│ ├── ic_shop_cart_add.png
│ ├── ic_shop_cart_pop.png
│ ├── ic_shop_carts_add.png
│ ├── ic_shop_category.png
│ ├── ic_shop_location.png
│ ├── ic_store_service.png
│ ├── ic_switch_default.png
│ ├── ic_tab_my_select.png
│ ├── ic_taste bad_push.png
│ ├── ic_upload_success.png
│ ├── img_analyze_none.png
│ ├── img_default_head.png
│ ├── img_home_list_bg.png
│ ├── img_login_bottom.png
│ ├── img_news_default.png
│ ├── img_package_back.png
│ ├── img_package_front.png
│ ├── img_package_third.png
│ ├── img_remind_right.png
│ ├── ic_address_default.png
│ ├── ic_address_deleted.png
│ ├── ic_address_selected.png
│ ├── ic_analyze_add_press.png
│ ├── ic_arrow_up_default.png
│ ├── ic_arrow_up_selected.png
│ ├── ic_article_collect.png
│ ├── ic_blankpage_order.png
│ ├── ic_bullet_down_gray.png
│ ├── ic_camera_selected.png
│ ├── ic_cancel_selected.png
│ ├── ic_choose_selected.png
│ ├── ic_delicious_select.png
│ ├── ic_favorate_checked.png
│ ├── ic_female_selected.png
│ ├── ic_filter_selected.png
│ ├── ic_food_light_green.png
│ ├── ic_food_light_yellow.png
│ ├── ic_food_ordering_up.png
│ ├── ic_green_light_big.png
│ ├── ic_health_kit_source.png
│ ├── ic_homepage_analyze.png
│ ├── ic_homepage_search.png
│ ├── ic_libary_contrast.png
│ ├── ic_method_category.png
│ ├── ic_my_carts_selected.png
│ ├── ic_my_order_selected.png
│ ├── ic_photo_share_white.png
│ ├── ic_rotator_default.png
│ ├── ic_rotator_selected.png
│ ├── ic_share_to_qqzone.png
│ ├── ic_share_to_wechat.png
│ ├── ic_shop_carts_minuse.png
│ ├── ic_tab_search_select.png
│ ├── ic_tab_shop_select.png
│ ├── ic_takephoto_default.png
│ ├── ic_template_default.png
│ ├── ic_template_selected.png
│ ├── ic_yellow_light_big.png
│ ├── icon_policy_checked.png
│ ├── img_default_avatar.png
│ ├── img_feed_home_guide.png
│ ├── img_food_light_green.png
│ ├── img_food_light_red.png
│ ├── img_libary_pulldown.png
│ ├── img_my_navbar_white.png
│ ├── img_timeline_default.png
│ ├── privilege_selected.png
│ ├── privilege_unselected.png
│ ├── ic_analyze_search_gray.png
│ ├── ic_analyze_search_red.png
│ ├── ic_arrow_down_default.png
│ ├── ic_arrow_down_selected.png
│ ├── ic_blankpage_shopping.png
│ ├── ic_deatil_keep_checked.png
│ ├── ic_detail_quotes_left.png
│ ├── ic_detail_quotes_right.png
│ ├── ic_favorate_unchecked.png
│ ├── ic_feed_like_selected.png
│ ├── ic_flashlight_default.png
│ ├── ic_flashlight_selected.png
│ ├── ic_food_check_default.png
│ ├── ic_food_check_selected.png
│ ├── ic_food_ordering_down.png
│ ├── ic_modal_window_close.png
│ ├── ic_modal_window_submit.png
│ ├── ic_my_address_selected.png
│ ├── ic_my_setting_selected.png
│ ├── ic_photo_deleted_white.png
│ ├── ic_report_delete_push.png
│ ├── ic_store_cart_default.png
│ ├── ic_store_order_default.png
│ ├── ic_tab_homepage_select.png
│ ├── ic_takephoto_selected.png
│ ├── icon_policy_unchecked.png
│ ├── img_analyze_iPhone4_bg.png
│ ├── img_default_home_cover.png
│ ├── img_food_light_default.png
│ ├── img_food_light_yellow.png
│ ├── img_horizontal_default.png
│ ├── img_loading_background.png
│ ├── img_sharephoto_default.png
│ ├── img_upload_progress_1.png
│ ├── img_upload_progress_2.png
│ ├── img_upload_progress_3.png
│ ├── ic_article_collect_select.png
│ ├── ic_feed_camera_selected.png
│ ├── ic_feed_search_selected.png
│ ├── ic_home_analyse_selected.png
│ ├── ic_myphoto_news_selected.png
│ ├── ic_scan_compare_selected.png
│ ├── ic_share_to_wechat_circle.png
│ ├── ic_shop_checkboxChecked.png
│ ├── ic_shop_checkboxUnchecked.png
│ ├── ic_shop_goodsdetail_more.png
│ ├── ic_shop_order_highlighted.png
│ ├── ic_store_cart_highlighted.png
│ ├── img_default_compared_food.png
│ ├── img_default_food_category.png
│ ├── img_default_topic_banner.png
│ ├── img_default_topic_cover.png
│ ├── img_error_food_thumbnail.png
│ ├── ic_method_chain_restaurant.png
│ ├── ic_search_compare_selected.png
│ ├── ic_store_order_highlighted.png
│ ├── img_default_food_thumbnail.png
│ ├── img_food_light_example_red.png
│ ├── ic_date_switcher_left_default.png
│ ├── ic_date_switcher_left_disabled.png
│ ├── ic_date_switcher_right_default.png
│ ├── ic_shop_category_highlighted.png
│ ├── img_food_light_example_green.png
│ ├── img_food_light_example_yellow.png
│ ├── ic_date_switcher_right_disabled.png
│ ├── ic_date_switcher_left_hightlighted.png
│ ├── ic_date_switcher_right_highlighted.png
│ └── ic_store_consultant_service_small_highlighted.png
├── store
│ ├── index.js
│ ├── common
│ │ ├── account.js
│ │ └── app.js
│ ├── foodEncyclopediaStore.js
│ └── feedBaseStore.js
├── common
│ ├── Routers.js
│ ├── HttpTool.js
│ ├── NetInfoDecorator.js
│ ├── UserDefaults.js
│ └── GlobalContants.js
├── pages
│ ├── Splash.js
│ ├── TabBarView.js
│ ├── Login.js
│ └── feed
│ │ ├── Feed.js
│ │ ├── FeedDelicacyList.js
│ │ ├── FeedKnowledgeList.js
│ │ └── FeedEvaluatingList.js
├── components
│ ├── LoadMoreFooter.js
│ ├── Loading.js
│ ├── FeedMultiImageCell.js
│ ├── TabBar.js
│ ├── FeedSingleImageCell.js
│ ├── FeedsCategoryBar.js
│ ├── ShareView.js
│ ├── Header.js
│ └── Scanner.js
└── index.js
├── android
├── app
│ ├── src
│ │ └── main
│ │ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ └── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── assets
│ │ │ └── fonts
│ │ │ │ ├── Entypo.ttf
│ │ │ │ ├── Zocial.ttf
│ │ │ │ ├── EvilIcons.ttf
│ │ │ │ ├── Ionicons.ttf
│ │ │ │ ├── Octicons.ttf
│ │ │ │ ├── FontAwesome.ttf
│ │ │ │ ├── Foundation.ttf
│ │ │ │ └── MaterialIcons.ttf
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── ishiwupai
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── MainApplication.java
│ │ │ └── AndroidManifest.xml
│ ├── BUCK
│ └── proguard-rules.pro
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── keystores
│ ├── debug.keystore.properties
│ └── BUCK
├── settings.gradle
├── build.gradle
├── gradle.properties
├── iShiWuPai.iml
├── gradlew.bat
└── gradlew
├── ios
├── iShiWuPai
│ ├── Images.xcassets
│ │ ├── Contents.json
│ │ ├── ic_trash.imageset
│ │ │ ├── ic_trash.png
│ │ │ └── Contents.json
│ │ ├── img_my_bg.imageset
│ │ │ ├── img_my_bg.png
│ │ │ └── Contents.json
│ │ ├── ic_my_food.imageset
│ │ │ ├── ic_my_food.png
│ │ │ └── Contents.json
│ │ ├── ic_my_right.imageset
│ │ │ ├── ic_my_right.png
│ │ │ └── Contents.json
│ │ ├── img_intro_4.imageset
│ │ │ ├── img_intro_4.png
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ ├── AppIcon60x60@3x.png
│ │ │ └── Contents.json
│ │ ├── LaunchImage.launchimage
│ │ │ ├── Default@2x.png
│ │ │ ├── Default-568h@2x.png
│ │ │ ├── LaunchImage-800-667h@2x.png
│ │ │ ├── LaunchImage-800-Portrait-736h@3x.png
│ │ │ └── Contents.json
│ │ ├── ic_my_upload.imageset
│ │ │ ├── ic_my_upload.png
│ │ │ └── Contents.json
│ │ ├── ic_my_collect.imageset
│ │ │ ├── ic_my_collect.png
│ │ │ └── Contents.json
│ │ ├── img_analyze_bg.imageset
│ │ │ ├── img_analyze_bg.png
│ │ │ └── Contents.json
│ │ ├── ic_input_search.imageset
│ │ │ ├── ic_input_search.png
│ │ │ └── Contents.json
│ │ ├── img_food_shadow.imageset
│ │ │ ├── img_food_shadow.png
│ │ │ └── Contents.json
│ │ ├── ic_food_ordering.imageset
│ │ │ ├── ic_food_ordering.png
│ │ │ └── Contents.json
│ │ ├── ic_homepage_scan.imageset
│ │ │ ├── ic_homepage_scan.png
│ │ │ └── Contents.json
│ │ ├── img_default_head.imageset
│ │ │ ├── img_default_head.png
│ │ │ └── Contents.json
│ │ ├── ic_search_history.imageset
│ │ │ ├── ic_search_history.png
│ │ │ └── Contents.json
│ │ ├── ic_food_ordering_up.imageset
│ │ │ ├── ic_food_ordering_up.png
│ │ │ └── Contents.json
│ │ ├── ic_homepage_search.imageset
│ │ │ ├── ic_homepage_search.png
│ │ │ └── Contents.json
│ │ ├── ic_analyze_search_red.imageset
│ │ │ ├── ic_analyze_search_red.png
│ │ │ └── Contents.json
│ │ ├── ic_food_ordering_down.imageset
│ │ │ ├── ic_food_ordering_down.png
│ │ │ └── Contents.json
│ │ ├── img_default_home_cover.imageset
│ │ │ ├── img_default_home_cover.png
│ │ │ └── Contents.json
│ │ ├── img_default_compared_food.imageset
│ │ │ ├── img_default_compared_food.png
│ │ │ └── Contents.json
│ │ └── img_default_food_category.imageset
│ │ │ ├── img_default_food_category.png
│ │ │ └── Contents.json
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppDelegate.m
│ └── Info.plist
├── iShiWuPaiTests
│ ├── Info.plist
│ └── iShiWuPaiTests.m
├── iShiWuPai-tvOSTests
│ └── Info.plist
├── iShiWuPai-tvOS
│ └── Info.plist
└── iShiWuPai.xcodeproj
│ └── xcshareddata
│ └── xcschemes
│ ├── iShiWuPai.xcscheme
│ └── iShiWuPai-tvOS.xcscheme
├── index.ios.js
├── index.android.js
├── package.json
├── LICENSE
├── README.md
└── iShiWuPai.js
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "iShiWuPai",
3 | "displayName": "iShiWuPai"
4 | }
--------------------------------------------------------------------------------
/screenshot/feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/screenshot/feed.png
--------------------------------------------------------------------------------
/screenshot/food.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/screenshot/food.png
--------------------------------------------------------------------------------
/screenshot/foods.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/screenshot/foods.png
--------------------------------------------------------------------------------
/screenshot/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/screenshot/profile.png
--------------------------------------------------------------------------------
/src/resource/ic_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_edit.png
--------------------------------------------------------------------------------
/src/resource/ic_male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_male.png
--------------------------------------------------------------------------------
/src/resource/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_menu.png
--------------------------------------------------------------------------------
/src/resource/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_more.png
--------------------------------------------------------------------------------
/src/resource/ic_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan.png
--------------------------------------------------------------------------------
/src/resource/img_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_add.png
--------------------------------------------------------------------------------
/src/resource/shumei.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/shumei.png
--------------------------------------------------------------------------------
/screenshot/info_detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/screenshot/info_detail.png
--------------------------------------------------------------------------------
/src/resource/ic_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_avatar.png
--------------------------------------------------------------------------------
/src/resource/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_clear.png
--------------------------------------------------------------------------------
/src/resource/ic_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_collect.png
--------------------------------------------------------------------------------
/src/resource/ic_no wifi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_no wifi.png
--------------------------------------------------------------------------------
/src/resource/ic_recipe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_recipe.png
--------------------------------------------------------------------------------
/src/resource/ic_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_refresh.png
--------------------------------------------------------------------------------
/src/resource/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_search.png
--------------------------------------------------------------------------------
/src/resource/ic_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_setting.png
--------------------------------------------------------------------------------
/src/resource/ic_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_my.png
--------------------------------------------------------------------------------
/src/resource/ic_trash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_trash.png
--------------------------------------------------------------------------------
/src/resource/icon_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_phone.png
--------------------------------------------------------------------------------
/src/resource/redButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/redButton.png
--------------------------------------------------------------------------------
/src/resource/shop_cart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/shop_cart.png
--------------------------------------------------------------------------------
/src/resource/ic_back_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_back_dark.png
--------------------------------------------------------------------------------
/src/resource/ic_delicious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_delicious.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_like.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_nav.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_next.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_read.png
--------------------------------------------------------------------------------
/src/resource/ic_head_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_head_logo.png
--------------------------------------------------------------------------------
/src/resource/ic_libary_vs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_libary_vs.png
--------------------------------------------------------------------------------
/src/resource/ic_my_carts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_carts.png
--------------------------------------------------------------------------------
/src/resource/ic_my_nobody.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_nobody.png
--------------------------------------------------------------------------------
/src/resource/ic_my_order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_order.png
--------------------------------------------------------------------------------
/src/resource/ic_my_photos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_photos.png
--------------------------------------------------------------------------------
/src/resource/ic_my_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_right.png
--------------------------------------------------------------------------------
/src/resource/ic_my_upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_upload.png
--------------------------------------------------------------------------------
/src/resource/ic_news_buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_news_buy.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_gray.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_more.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_news.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_shop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_shop.png
--------------------------------------------------------------------------------
/src/resource/ic_taste bad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_taste bad.png
--------------------------------------------------------------------------------
/src/resource/icon_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_account.png
--------------------------------------------------------------------------------
/src/resource/icon_arrowup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_arrowup.png
--------------------------------------------------------------------------------
/src/resource/img_home_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_home_bg.png
--------------------------------------------------------------------------------
/src/resource/img_intro_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_intro_1.png
--------------------------------------------------------------------------------
/src/resource/img_intro_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_intro_2.png
--------------------------------------------------------------------------------
/src/resource/img_intro_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_intro_3.png
--------------------------------------------------------------------------------
/src/resource/img_intro_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_intro_4.png
--------------------------------------------------------------------------------
/src/resource/img_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_loading.png
--------------------------------------------------------------------------------
/src/resource/img_meal_tip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_meal_tip.png
--------------------------------------------------------------------------------
/src/resource/img_my_head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_my_head.png
--------------------------------------------------------------------------------
/src/resource/img_tip_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_tip_left.png
--------------------------------------------------------------------------------
/src/resource/orangeButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/orangeButton.png
--------------------------------------------------------------------------------
/src/resource/ic_aboutLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_aboutLight.png
--------------------------------------------------------------------------------
/src/resource/ic_account_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_qq.png
--------------------------------------------------------------------------------
/src/resource/ic_addfood_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_addfood_scan.png
--------------------------------------------------------------------------------
/src/resource/ic_address_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_address_edit.png
--------------------------------------------------------------------------------
/src/resource/ic_arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_arrow_down.png
--------------------------------------------------------------------------------
/src/resource/ic_back_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_back_search.png
--------------------------------------------------------------------------------
/src/resource/ic_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_back_white.png
--------------------------------------------------------------------------------
/src/resource/ic_bullet_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_bullet_dark.png
--------------------------------------------------------------------------------
/src/resource/ic_bullet_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_bullet_white.png
--------------------------------------------------------------------------------
/src/resource/ic_contrast_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_contrast_add.png
--------------------------------------------------------------------------------
/src/resource/ic_deatil_keep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_deatil_keep.png
--------------------------------------------------------------------------------
/src/resource/ic_edit_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_edit_small.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_camera.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_search.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_video.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_watch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_watch.png
--------------------------------------------------------------------------------
/src/resource/ic_health_kit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_health_kit.png
--------------------------------------------------------------------------------
/src/resource/ic_home_analyse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_home_analyse.png
--------------------------------------------------------------------------------
/src/resource/ic_home_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_home_search.png
--------------------------------------------------------------------------------
/src/resource/ic_input_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_input_search.png
--------------------------------------------------------------------------------
/src/resource/ic_libary_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_libary_scan.png
--------------------------------------------------------------------------------
/src/resource/ic_method_brand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_method_brand.png
--------------------------------------------------------------------------------
/src/resource/ic_method_cook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_method_cook.png
--------------------------------------------------------------------------------
/src/resource/ic_my_address.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_address.png
--------------------------------------------------------------------------------
/src/resource/ic_my_analyse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_analyse.png
--------------------------------------------------------------------------------
/src/resource/ic_my_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_collect.png
--------------------------------------------------------------------------------
/src/resource/ic_my_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_message.png
--------------------------------------------------------------------------------
/src/resource/ic_my_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_setting.png
--------------------------------------------------------------------------------
/src/resource/ic_myphoto_news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_myphoto_news.png
--------------------------------------------------------------------------------
/src/resource/ic_news_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_news_collect.png
--------------------------------------------------------------------------------
/src/resource/ic_news_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_news_share.png
--------------------------------------------------------------------------------
/src/resource/ic_no_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_no_comment.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_delete.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_empty.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_more.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_share.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_cancel.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_compare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_compare.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_delete.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_goback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_goback.png
--------------------------------------------------------------------------------
/src/resource/ic_share_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share_black.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_carts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_carts.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_comment.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_element.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_element.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_homepage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_homepage.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_search.png
--------------------------------------------------------------------------------
/src/resource/ic_tag_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tag_default.png
--------------------------------------------------------------------------------
/src/resource/ic_tag_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tag_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_upload_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_upload_empty.png
--------------------------------------------------------------------------------
/src/resource/ic_upload_fail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_upload_fail.png
--------------------------------------------------------------------------------
/src/resource/ic_upload_wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_upload_wait.png
--------------------------------------------------------------------------------
/src/resource/icon_arrowdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_arrowdown.png
--------------------------------------------------------------------------------
/src/resource/icon_password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_password.png
--------------------------------------------------------------------------------
/src/resource/img_analyze_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_analyze_bg.png
--------------------------------------------------------------------------------
/src/resource/img_discount_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_discount_bg.png
--------------------------------------------------------------------------------
/src/resource/img_food_shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_shadow.png
--------------------------------------------------------------------------------
/src/resource/img_guide_mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_guide_mask.png
--------------------------------------------------------------------------------
/src/resource/img_meal_none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_meal_none.png
--------------------------------------------------------------------------------
/src/resource/img_my_navbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_my_navbar.png
--------------------------------------------------------------------------------
/src/resource/img_remind_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_remind_left.png
--------------------------------------------------------------------------------
/src/resource/img_scan_area.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_scan_area.png
--------------------------------------------------------------------------------
/src/resource/img_scan_line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_scan_line.png
--------------------------------------------------------------------------------
/src/resource/img_shop_stripe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_shop_stripe.png
--------------------------------------------------------------------------------
/src/resource/img_tip_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_tip_right.png
--------------------------------------------------------------------------------
/src/resource/img_xpush_tip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_xpush_tip.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | iShiWuPai
3 |
4 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/src/resource/ic_account_boohee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_boohee.png
--------------------------------------------------------------------------------
/src/resource/ic_account_draft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_draft.png
--------------------------------------------------------------------------------
/src/resource/ic_account_favour.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_favour.png
--------------------------------------------------------------------------------
/src/resource/ic_account_myself.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_myself.png
--------------------------------------------------------------------------------
/src/resource/ic_account_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_phone.png
--------------------------------------------------------------------------------
/src/resource/ic_account_upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_upload.png
--------------------------------------------------------------------------------
/src/resource/ic_account_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_wechat.png
--------------------------------------------------------------------------------
/src/resource/ic_account_weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_account_weibo.png
--------------------------------------------------------------------------------
/src/resource/ic_address_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_address_empty.png
--------------------------------------------------------------------------------
/src/resource/ic_album_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_album_default.png
--------------------------------------------------------------------------------
/src/resource/ic_album_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_album_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_analyze_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_analyze_cancel.png
--------------------------------------------------------------------------------
/src/resource/ic_camera_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_camera_default.png
--------------------------------------------------------------------------------
/src/resource/ic_cancel_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_cancel_default.png
--------------------------------------------------------------------------------
/src/resource/ic_choose_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_choose_default.png
--------------------------------------------------------------------------------
/src/resource/ic_collect_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_collect_empty.png
--------------------------------------------------------------------------------
/src/resource/ic_collect_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_collect_select.png
--------------------------------------------------------------------------------
/src/resource/ic_comment_write.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_comment_write.png
--------------------------------------------------------------------------------
/src/resource/ic_deatil_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_deatil_comment.png
--------------------------------------------------------------------------------
/src/resource/ic_female_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_female_default.png
--------------------------------------------------------------------------------
/src/resource/ic_filter_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_filter_default.png
--------------------------------------------------------------------------------
/src/resource/ic_food_light_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_light_red.png
--------------------------------------------------------------------------------
/src/resource/ic_food_ordering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_ordering.png
--------------------------------------------------------------------------------
/src/resource/ic_homepage_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_homepage_like.png
--------------------------------------------------------------------------------
/src/resource/ic_homepage_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_homepage_scan.png
--------------------------------------------------------------------------------
/src/resource/ic_male_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_male_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_method_season.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_method_season.png
--------------------------------------------------------------------------------
/src/resource/ic_my_order_item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_order_item.png
--------------------------------------------------------------------------------
/src/resource/ic_payment_alipay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_payment_alipay.png
--------------------------------------------------------------------------------
/src/resource/ic_payment_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_payment_wechat.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_comment.png
--------------------------------------------------------------------------------
/src/resource/ic_profile_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_profile_avatar.png
--------------------------------------------------------------------------------
/src/resource/ic_red_light_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_red_light_big.png
--------------------------------------------------------------------------------
/src/resource/ic_report_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_report_delete.png
--------------------------------------------------------------------------------
/src/resource/ic_scale_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scale_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_search_compare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_search_compare.png
--------------------------------------------------------------------------------
/src/resource/ic_search_history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_search_history.png
--------------------------------------------------------------------------------
/src/resource/ic_share_to_weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share_to_weibo.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_cart_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_cart_add.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_cart_pop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_cart_pop.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_carts_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_carts_add.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_category.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_location.png
--------------------------------------------------------------------------------
/src/resource/ic_store_service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_service.png
--------------------------------------------------------------------------------
/src/resource/ic_switch_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_switch_default.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_my_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_my_select.png
--------------------------------------------------------------------------------
/src/resource/ic_taste bad_push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_taste bad_push.png
--------------------------------------------------------------------------------
/src/resource/ic_upload_success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_upload_success.png
--------------------------------------------------------------------------------
/src/resource/img_analyze_none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_analyze_none.png
--------------------------------------------------------------------------------
/src/resource/img_default_head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_head.png
--------------------------------------------------------------------------------
/src/resource/img_home_list_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_home_list_bg.png
--------------------------------------------------------------------------------
/src/resource/img_login_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_login_bottom.png
--------------------------------------------------------------------------------
/src/resource/img_news_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_news_default.png
--------------------------------------------------------------------------------
/src/resource/img_package_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_package_back.png
--------------------------------------------------------------------------------
/src/resource/img_package_front.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_package_front.png
--------------------------------------------------------------------------------
/src/resource/img_package_third.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_package_third.png
--------------------------------------------------------------------------------
/src/resource/img_remind_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_remind_right.png
--------------------------------------------------------------------------------
/src/resource/ic_address_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_address_default.png
--------------------------------------------------------------------------------
/src/resource/ic_address_deleted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_address_deleted.png
--------------------------------------------------------------------------------
/src/resource/ic_address_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_address_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_analyze_add_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_analyze_add_press.png
--------------------------------------------------------------------------------
/src/resource/ic_arrow_up_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_arrow_up_default.png
--------------------------------------------------------------------------------
/src/resource/ic_arrow_up_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_arrow_up_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_article_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_article_collect.png
--------------------------------------------------------------------------------
/src/resource/ic_blankpage_order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_blankpage_order.png
--------------------------------------------------------------------------------
/src/resource/ic_bullet_down_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_bullet_down_gray.png
--------------------------------------------------------------------------------
/src/resource/ic_camera_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_camera_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_cancel_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_cancel_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_choose_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_choose_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_delicious_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_delicious_select.png
--------------------------------------------------------------------------------
/src/resource/ic_favorate_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_favorate_checked.png
--------------------------------------------------------------------------------
/src/resource/ic_female_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_female_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_filter_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_filter_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_food_light_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_light_green.png
--------------------------------------------------------------------------------
/src/resource/ic_food_light_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_light_yellow.png
--------------------------------------------------------------------------------
/src/resource/ic_food_ordering_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_ordering_up.png
--------------------------------------------------------------------------------
/src/resource/ic_green_light_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_green_light_big.png
--------------------------------------------------------------------------------
/src/resource/ic_health_kit_source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_health_kit_source.png
--------------------------------------------------------------------------------
/src/resource/ic_homepage_analyze.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_homepage_analyze.png
--------------------------------------------------------------------------------
/src/resource/ic_homepage_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_homepage_search.png
--------------------------------------------------------------------------------
/src/resource/ic_libary_contrast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_libary_contrast.png
--------------------------------------------------------------------------------
/src/resource/ic_method_category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_method_category.png
--------------------------------------------------------------------------------
/src/resource/ic_my_carts_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_carts_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_my_order_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_order_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_share_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_share_white.png
--------------------------------------------------------------------------------
/src/resource/ic_rotator_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_rotator_default.png
--------------------------------------------------------------------------------
/src/resource/ic_rotator_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_rotator_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_share_to_qqzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share_to_qqzone.png
--------------------------------------------------------------------------------
/src/resource/ic_share_to_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share_to_wechat.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_carts_minuse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_carts_minuse.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_search_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_search_select.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_shop_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_shop_select.png
--------------------------------------------------------------------------------
/src/resource/ic_takephoto_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_takephoto_default.png
--------------------------------------------------------------------------------
/src/resource/ic_template_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_template_default.png
--------------------------------------------------------------------------------
/src/resource/ic_template_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_template_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_yellow_light_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_yellow_light_big.png
--------------------------------------------------------------------------------
/src/resource/icon_policy_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_policy_checked.png
--------------------------------------------------------------------------------
/src/resource/img_default_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_avatar.png
--------------------------------------------------------------------------------
/src/resource/img_feed_home_guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_feed_home_guide.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_green.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_red.png
--------------------------------------------------------------------------------
/src/resource/img_libary_pulldown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_libary_pulldown.png
--------------------------------------------------------------------------------
/src/resource/img_my_navbar_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_my_navbar_white.png
--------------------------------------------------------------------------------
/src/resource/img_timeline_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_timeline_default.png
--------------------------------------------------------------------------------
/src/resource/privilege_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/privilege_selected.png
--------------------------------------------------------------------------------
/src/resource/privilege_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/privilege_unselected.png
--------------------------------------------------------------------------------
/src/resource/ic_analyze_search_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_analyze_search_gray.png
--------------------------------------------------------------------------------
/src/resource/ic_analyze_search_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_analyze_search_red.png
--------------------------------------------------------------------------------
/src/resource/ic_arrow_down_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_arrow_down_default.png
--------------------------------------------------------------------------------
/src/resource/ic_arrow_down_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_arrow_down_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_blankpage_shopping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_blankpage_shopping.png
--------------------------------------------------------------------------------
/src/resource/ic_deatil_keep_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_deatil_keep_checked.png
--------------------------------------------------------------------------------
/src/resource/ic_detail_quotes_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_detail_quotes_left.png
--------------------------------------------------------------------------------
/src/resource/ic_detail_quotes_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_detail_quotes_right.png
--------------------------------------------------------------------------------
/src/resource/ic_favorate_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_favorate_unchecked.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_like_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_like_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_flashlight_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_flashlight_default.png
--------------------------------------------------------------------------------
/src/resource/ic_flashlight_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_flashlight_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_food_check_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_check_default.png
--------------------------------------------------------------------------------
/src/resource/ic_food_check_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_check_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_food_ordering_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_food_ordering_down.png
--------------------------------------------------------------------------------
/src/resource/ic_modal_window_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_modal_window_close.png
--------------------------------------------------------------------------------
/src/resource/ic_modal_window_submit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_modal_window_submit.png
--------------------------------------------------------------------------------
/src/resource/ic_my_address_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_address_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_my_setting_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_my_setting_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_photo_deleted_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_photo_deleted_white.png
--------------------------------------------------------------------------------
/src/resource/ic_report_delete_push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_report_delete_push.png
--------------------------------------------------------------------------------
/src/resource/ic_store_cart_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_cart_default.png
--------------------------------------------------------------------------------
/src/resource/ic_store_order_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_order_default.png
--------------------------------------------------------------------------------
/src/resource/ic_tab_homepage_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_tab_homepage_select.png
--------------------------------------------------------------------------------
/src/resource/ic_takephoto_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_takephoto_selected.png
--------------------------------------------------------------------------------
/src/resource/icon_policy_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/icon_policy_unchecked.png
--------------------------------------------------------------------------------
/src/resource/img_analyze_iPhone4_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_analyze_iPhone4_bg.png
--------------------------------------------------------------------------------
/src/resource/img_default_home_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_home_cover.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_default.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_yellow.png
--------------------------------------------------------------------------------
/src/resource/img_horizontal_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_horizontal_default.png
--------------------------------------------------------------------------------
/src/resource/img_loading_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_loading_background.png
--------------------------------------------------------------------------------
/src/resource/img_sharephoto_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_sharephoto_default.png
--------------------------------------------------------------------------------
/src/resource/img_upload_progress_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_upload_progress_1.png
--------------------------------------------------------------------------------
/src/resource/img_upload_progress_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_upload_progress_2.png
--------------------------------------------------------------------------------
/src/resource/img_upload_progress_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_upload_progress_3.png
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/resource/ic_article_collect_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_article_collect_select.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_camera_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_camera_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_feed_search_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_feed_search_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_home_analyse_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_home_analyse_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_myphoto_news_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_myphoto_news_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_scan_compare_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_scan_compare_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_share_to_wechat_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_share_to_wechat_circle.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_checkboxChecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_checkboxChecked.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_checkboxUnchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_checkboxUnchecked.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_goodsdetail_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_goodsdetail_more.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_order_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_order_highlighted.png
--------------------------------------------------------------------------------
/src/resource/ic_store_cart_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_cart_highlighted.png
--------------------------------------------------------------------------------
/src/resource/img_default_compared_food.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_compared_food.png
--------------------------------------------------------------------------------
/src/resource/img_default_food_category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_food_category.png
--------------------------------------------------------------------------------
/src/resource/img_default_topic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_topic_banner.png
--------------------------------------------------------------------------------
/src/resource/img_default_topic_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_topic_cover.png
--------------------------------------------------------------------------------
/src/resource/img_error_food_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_error_food_thumbnail.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/src/resource/ic_method_chain_restaurant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_method_chain_restaurant.png
--------------------------------------------------------------------------------
/src/resource/ic_search_compare_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_search_compare_selected.png
--------------------------------------------------------------------------------
/src/resource/ic_store_order_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_order_highlighted.png
--------------------------------------------------------------------------------
/src/resource/img_default_food_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_default_food_thumbnail.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_example_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_example_red.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_left_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_left_default.png
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_left_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_left_disabled.png
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_right_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_right_default.png
--------------------------------------------------------------------------------
/src/resource/ic_shop_category_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_shop_category_highlighted.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_example_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_example_green.png
--------------------------------------------------------------------------------
/src/resource/img_food_light_example_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/img_food_light_example_yellow.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_right_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_right_disabled.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_left_hightlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_left_hightlighted.png
--------------------------------------------------------------------------------
/src/resource/ic_date_switcher_right_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_date_switcher_right_highlighted.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/keystores/debug.keystore.properties:
--------------------------------------------------------------------------------
1 | key.store=debug.keystore
2 | key.alias=androiddebugkey
3 | key.store.password=android
4 | key.alias.password=android
5 |
--------------------------------------------------------------------------------
/index.ios.js:
--------------------------------------------------------------------------------
1 | /**
2 | * iShiWuPai入口文件
3 | */
4 |
5 | global.__IOS__ = true
6 | global.__ANDROID__ = false
7 |
8 | require('./src/common/GlobalContants')
9 | require('./iShiWuPai')
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_trash.imageset/ic_trash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_trash.imageset/ic_trash.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_my_bg.imageset/img_my_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_my_bg.imageset/img_my_bg.png
--------------------------------------------------------------------------------
/src/resource/ic_store_consultant_service_small_highlighted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/src/resource/ic_store_consultant_service_small_highlighted.png
--------------------------------------------------------------------------------
/index.android.js:
--------------------------------------------------------------------------------
1 | /**
2 | * iShiWuPai入口文件
3 | */
4 |
5 | global.__IOS__ = false
6 | global.__ANDROID__ = true
7 |
8 | require('./src/common/GlobalContants')
9 | require('./iShiWuPai')
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_food.imageset/ic_my_food.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_my_food.imageset/ic_my_food.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_right.imageset/ic_my_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_my_right.imageset/ic_my_right.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_intro_4.imageset/img_intro_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_intro_4.imageset/img_intro_4.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/Default@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_upload.imageset/ic_my_upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_my_upload.imageset/ic_my_upload.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_collect.imageset/ic_my_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_my_collect.imageset/ic_my_collect.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_analyze_bg.imageset/img_analyze_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_analyze_bg.imageset/img_analyze_bg.png
--------------------------------------------------------------------------------
/android/keystores/BUCK:
--------------------------------------------------------------------------------
1 | keystore(
2 | name = "debug",
3 | properties = "debug.keystore.properties",
4 | store = "debug.keystore",
5 | visibility = [
6 | "PUBLIC",
7 | ],
8 | )
9 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_input_search.imageset/ic_input_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_input_search.imageset/ic_input_search.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_food_shadow.imageset/img_food_shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_food_shadow.imageset/img_food_shadow.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering.imageset/ic_food_ordering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_food_ordering.imageset/ic_food_ordering.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_homepage_scan.imageset/ic_homepage_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_homepage_scan.imageset/ic_homepage_scan.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_head.imageset/img_default_head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_default_head.imageset/img_default_head.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_search_history.imageset/ic_search_history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_search_history.imageset/ic_search_history.png
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/5/24.
3 | */
4 | import app from './common/app'
5 | import account from './common/account'
6 |
7 | export default {
8 | app,
9 | account
10 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering_up.imageset/ic_food_ordering_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_food_ordering_up.imageset/ic_food_ordering_up.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_homepage_search.imageset/ic_homepage_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_homepage_search.imageset/ic_homepage_search.png
--------------------------------------------------------------------------------
/src/store/common/account.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/5/25.
3 | */
4 | import {observable} from 'mobx'
5 |
6 | class Account {
7 | @observable name = ''
8 | }
9 |
10 | export default new Account()
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_analyze_search_red.imageset/ic_analyze_search_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_analyze_search_red.imageset/ic_analyze_search_red.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering_down.imageset/ic_food_ordering_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/ic_food_ordering_down.imageset/ic_food_ordering_down.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_home_cover.imageset/img_default_home_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_default_home_cover.imageset/img_default_home_cover.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'iShiWuPai'
2 | include ':react-native-camera'
3 | project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
4 |
5 | include ':app'
6 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_compared_food.imageset/img_default_compared_food.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_default_compared_food.imageset/img_default_compared_food.png
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_food_category.imageset/img_default_food_category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/penguin011/react-native/HEAD/ios/iShiWuPai/Images.xcassets/img_default_food_category.imageset/img_default_food_category.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
6 |
--------------------------------------------------------------------------------
/src/store/common/app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/5/25.
3 | */
4 | import {observable, action} from 'mobx'
5 |
6 | class App {
7 | @observable barStyle = 'light-content'
8 |
9 | @action
10 | updateBarStyle = style => {
11 | this.barStyle = style
12 | }
13 | }
14 |
15 | export default new App()
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_trash.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_trash.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_food.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_my_food.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_right.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_my_right.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_intro_4.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_intro_4.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_my_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_my_bg.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_collect.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_my_collect.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_my_upload.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_my_upload.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_food_ordering.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_homepage_scan.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_homepage_scan.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_input_search.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_input_search.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_analyze_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_analyze_bg.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_head.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_default_head.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_food_shadow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_food_shadow.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_homepage_search.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_homepage_search.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_search_history.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_search_history.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_analyze_search_red.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_analyze_search_red.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering_down.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_food_ordering_down.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/ic_food_ordering_up.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ic_food_ordering_up.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/android/app/src/main/java/com/ishiwupai/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.ishiwupai;
2 |
3 | import com.facebook.react.ReactActivity;
4 |
5 | public class MainActivity extends ReactActivity {
6 |
7 | /**
8 | * Returns the name of the main component registered from JavaScript.
9 | * This is used to schedule rendering of the component.
10 | */
11 | @Override
12 | protected String getMainComponentName() {
13 | return "iShiWuPai";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_home_cover.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_default_home_cover.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_compared_food.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_default_compared_food.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/img_default_food_category.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "img_default_food_category.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/src/common/Routers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/6/2.
3 | */
4 | const router = {
5 | 'Splash': require('../pages/Splash'),
6 | 'Login': require('../pages/Login'),
7 | 'TabBarView': require('../pages/TabBarView'),
8 | 'Scanner': require('../components/Scanner'),
9 |
10 | // home
11 | 'Foods': require('../pages/home/Foods'),
12 |
13 | // feed
14 | 'FeedDetail': require('../pages/feed/FeedDetail'),
15 |
16 | // profile
17 | }
18 |
19 | export default router
--------------------------------------------------------------------------------
/ios/iShiWuPai/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | @interface AppDelegate : UIResponder
13 |
14 | @property (nonatomic, strong) UIWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | #import "AppDelegate.h"
13 |
14 | int main(int argc, char * argv[]) {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/common/HttpTool.js:
--------------------------------------------------------------------------------
1 |
2 | const delay = timeout => {
3 | return new Promise((resolve, reject) => {
4 | setTimeout(() => reject('请求超时'), timeout * 1000)
5 | })
6 | }
7 |
8 | const get = ({url, params = {}, timeout}) => {
9 | const paramArr = []
10 | if (Object.keys(params).length !== 0) {
11 | for (const key in params) {
12 | paramArr.push(`${key}=${params[key]}`)
13 | }
14 | }
15 | const urlStr = `${url}?${paramArr.join('&')}`
16 |
17 | if (timeout === undefined) {
18 | return fetch(urlStr)
19 | } else {
20 | return Promise.race([fetch(urlStr), delay(timeout)])
21 | }
22 | }
23 |
24 | export { get }
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.3'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | mavenLocal()
18 | jcenter()
19 | maven {
20 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
21 | url "$rootDir/../node_modules/react-native/android"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/pages/Splash.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/8/21.
3 | */
4 | import React, { Component } from 'react'
5 | import { Image } from 'react-native'
6 |
7 | export default class Splash extends Component {
8 | componentDidMount() {
9 | const { navigator } = this.props
10 | this.timer = setTimeout(() => {
11 | navigator.resetTo({id: 'TabBarView'})
12 | }, 2000)
13 | }
14 |
15 | componentWillUnmount() {
16 | clearTimeout(this.timer)
17 | }
18 |
19 | render() {
20 | return (
21 |
25 | )
26 | }
27 | }
--------------------------------------------------------------------------------
/src/common/NetInfoDecorator.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/1/7.
3 | */
4 | import React, {Component} from 'react'
5 | import {NetInfo} from 'react-native'
6 |
7 | const NetInfoDecorator = WrappedComponent => class extends Component {
8 | constructor(props) {
9 | super(props)
10 | this.state = {
11 | isConnected: true,
12 | }
13 | }
14 |
15 | componentDidMount() {
16 | NetInfo.isConnected.addEventListener('change', this._handleNetworkConnectivityChange);
17 | }
18 |
19 | _handleNetworkConnectivityChange = isConnected => this.setState({isConnected})
20 |
21 | render() {
22 | return
23 | }
24 | }
25 |
26 | export default NetInfoDecorator
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "iShiWuPai",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "node node_modules/react-native/local-cli/cli.js start"
7 | },
8 | "dependencies": {
9 | "autoresponsive-react-native": "^1.0.9",
10 | "mobx": "^3.1.9",
11 | "mobx-react": "^4.1.8",
12 | "react": "16.0.0-alpha.6",
13 | "react-native": "0.44.0",
14 | "react-native-camera": "^0.9.0",
15 | "react-native-deprecated-custom-components": "^0.1.0",
16 | "react-native-easy-toast": "^1.0.5",
17 | "react-native-scrollable-tab-view": "^0.7.3",
18 | "react-navigation": "^1.0.0-beta.5"
19 | },
20 | "devDependencies": {
21 | "babel-plugin-transform-decorators-legacy": "^1.3.4",
22 | "babel-preset-react-native-stage-0": "^1.0.1"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ios/iShiWuPaiTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/iShiWuPai-tvOSTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/common/UserDefaults.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/6/9.
3 | */
4 | import { AsyncStorage } from 'react-native';
5 |
6 | let UserDefaults = {
7 | setObject: (key, value) => {
8 | const jsonValue = JSON.stringify(value);
9 | return AsyncStorage.setItem(key, jsonValue, (error) => {
10 | console.log(key + ' setOrRemoveObject error: ' + error);
11 | });
12 | },
13 |
14 | cachedObject: (key) => {
15 | return AsyncStorage.getItem(key)
16 | .then((data, error) => {
17 | if (data) return JSON.parse(data);
18 |
19 | console.log(key + ' cachedObject error: ' + error);
20 | return null;
21 | })
22 | },
23 |
24 | clearCachedObject: (key) => {
25 | return AsyncStorage.removeItem(key);
26 | },
27 | }
28 |
29 | export default UserDefaults;
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useDeprecatedNdk=true
21 |
--------------------------------------------------------------------------------
/android/iShiWuPai.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 CookieJ
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/components/LoadMoreFooter.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/12/1.
3 | */
4 | import React, { Component } from 'react'
5 | import {
6 | ActivityIndicator,
7 | View,
8 | Text,
9 | StyleSheet,
10 | } from 'react-native'
11 |
12 | export default class LoadMoreFooter extends Component {
13 | static propTypes = {
14 | isNoMore: React.PropTypes.bool,
15 | }
16 |
17 | static defaultProps = {
18 | isNoMore: false
19 | }
20 |
21 | render() {
22 | const {isNoMore} = this.props
23 | const title = isNoMore ? '- 没有更多的数据了 -' : '正在加载更多的数据...'
24 |
25 | return (
26 |
27 | {!isNoMore && }
28 | {title}
29 |
30 | )
31 | }
32 | }
33 |
34 | const styles = StyleSheet.create({
35 | loadingContainer: {
36 | height: 40,
37 | justifyContent: 'center',
38 | alignItems: 'center',
39 | flexDirection: 'row'
40 | },
41 | title: {
42 | fontSize: 14,
43 | marginLeft: 5,
44 | color: 'gray'
45 | }
46 | })
--------------------------------------------------------------------------------
/src/store/foodEncyclopediaStore.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/12/14.
3 | */
4 | import {observable, runInAction, computed, action} from 'mobx'
5 | import {get} from '../common/HttpTool'
6 |
7 | class FoodEncyclopediaStore {
8 | @observable foodCategoryList = []
9 | @observable errorMsg = ''
10 |
11 | @action
12 | fetchCategoryList = async() => {
13 | try {
14 | const url = 'http://food.boohee.com/fb/v1/categories/list'
15 | const responseData = await get({url, timeout: 30}).then(res => res.json())
16 |
17 | runInAction(() => {
18 | this.foodCategoryList.replace(responseData.group)
19 | this.errorMsg = ''
20 | })
21 | } catch (error) {
22 | if (error.msg) {
23 | this.errorMsg = error.msg
24 | } else {
25 | this.errorMsg = error
26 | }
27 | }
28 | }
29 |
30 | @computed
31 | get isFetching() {
32 | return this.foodCategoryList.length === 0 && this.errorMsg === ''
33 | }
34 |
35 | @computed
36 | get isNoResult() {
37 | return this.foodCategoryList.length === 0
38 | }
39 | }
40 |
41 | export default FoodEncyclopediaStore
--------------------------------------------------------------------------------
/android/app/src/main/java/com/ishiwupai/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.ishiwupai;
2 |
3 | import android.app.Application;
4 |
5 | import com.facebook.react.ReactApplication;
6 | import com.lwansbrough.RCTCamera.RCTCameraPackage;
7 | import com.facebook.react.ReactNativeHost;
8 | import com.facebook.react.ReactPackage;
9 | import com.facebook.react.shell.MainReactPackage;
10 | import com.facebook.soloader.SoLoader;
11 |
12 | import java.util.Arrays;
13 | import java.util.List;
14 |
15 | public class MainApplication extends Application implements ReactApplication {
16 |
17 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
18 | @Override
19 | public boolean getUseDeveloperSupport() {
20 | return BuildConfig.DEBUG;
21 | }
22 |
23 | @Override
24 | protected List getPackages() {
25 | return Arrays.asList(
26 | new MainReactPackage(),
27 | new RCTCameraPackage()
28 | );
29 | }
30 | };
31 |
32 | @Override
33 | public ReactNativeHost getReactNativeHost() {
34 | return mReactNativeHost;
35 | }
36 |
37 | @Override
38 | public void onCreate() {
39 | super.onCreate();
40 | SoLoader.init(this, /* native exopackage */ false);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "size" : "29x29",
15 | "idiom" : "iphone",
16 | "filename" : "AppIcon29x29@2x.png",
17 | "scale" : "2x"
18 | },
19 | {
20 | "size" : "29x29",
21 | "idiom" : "iphone",
22 | "filename" : "AppIcon29x29@3x.png",
23 | "scale" : "3x"
24 | },
25 | {
26 | "size" : "40x40",
27 | "idiom" : "iphone",
28 | "filename" : "AppIcon40x40@2x.png",
29 | "scale" : "2x"
30 | },
31 | {
32 | "size" : "40x40",
33 | "idiom" : "iphone",
34 | "filename" : "AppIcon40x40@3x.png",
35 | "scale" : "3x"
36 | },
37 | {
38 | "size" : "60x60",
39 | "idiom" : "iphone",
40 | "filename" : "AppIcon60x60@2x.png",
41 | "scale" : "2x"
42 | },
43 | {
44 | "size" : "60x60",
45 | "idiom" : "iphone",
46 | "filename" : "AppIcon60x60@3x.png",
47 | "scale" : "3x"
48 | }
49 | ],
50 | "info" : {
51 | "version" : 1,
52 | "author" : "xcode"
53 | }
54 | }
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/common/GlobalContants.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/2/25.
3 | */
4 | import { Dimensions, Platform, PixelRatio } from 'react-native'
5 |
6 | global.gScreen = {
7 | width: Dimensions.get('window').width,
8 | height: Dimensions.get('window').height,
9 | navBarHeight: __IOS__ ? 64 : 50,
10 | navBarPaddingTop: __IOS__ ? 20 : 0,
11 | onePix: 1 / PixelRatio.get(),
12 | }
13 |
14 | global.gColors = {
15 | theme: 'rgb(217, 51, 58)',
16 | background: '#f5f5f5',
17 | border: '#d5d5d5',
18 | healthGreen: 'rgb(142, 213, 7)',
19 | healthYellow: 'rgb(254, 210, 10)',
20 | healthRed: 'rgb(251, 25, 8)'
21 | }
22 |
23 | global.gSortTypeUnitMapper = {
24 | 'calory': '千卡',
25 | 'protein': '克',
26 | 'fat': '克',
27 | 'carbohydrate': '克',
28 | 'fiber_dietary': '克',
29 | 'vitamin_a': 'IU',
30 | 'vitamin_c': '毫克',
31 | 'vitamin_e': '毫克',
32 | 'carotene': '毫克',
33 | 'thiamine': '毫克',
34 | 'lactoflavin': '毫克',
35 | 'niacin': '毫克',
36 | 'cholesterol': '毫克',
37 | 'magnesium': '毫克',
38 | 'calcium': '毫克',
39 | 'iron': '毫克',
40 | 'zinc': '毫克',
41 | 'copper': '毫克',
42 | 'manganese': '毫克',
43 | 'kalium': '毫克',
44 | 'phosphor': '毫克',
45 | 'natrium': '毫克',
46 | 'selenium': '毫克',
47 | 'iodine': '毫克'
48 | }
--------------------------------------------------------------------------------
/src/components/Loading.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/6/2.
3 | */
4 | import React, { Component } from 'react'
5 | import {
6 | StyleSheet,
7 | View,
8 | Text,
9 | ActivityIndicator
10 | } from 'react-native'
11 |
12 | export default class Loading extends Component {
13 | static propTypes = {
14 | isShow: React.PropTypes.bool
15 | }
16 |
17 | render() {
18 | if (!this.props.isShow) return null;
19 |
20 | return (
21 |
22 |
23 |
24 | 加载中……
25 |
26 |
27 | )
28 | }
29 | }
30 |
31 | const styles = StyleSheet.create({
32 | container: {
33 | position: 'absolute',
34 | top: 0,
35 | left: 0,
36 | right: 0,
37 | bottom: 0,
38 | justifyContent: 'center',
39 | alignItems: 'center'
40 | },
41 | loading: {
42 | backgroundColor: 'gray',
43 | height: 80,
44 | width: 100,
45 | borderRadius: 10,
46 | justifyContent: 'center',
47 | alignItems: 'center',
48 | },
49 | loadingTitle: {
50 | marginTop: 10,
51 | fontSize: 14,
52 | color: 'white'
53 | }
54 | })
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/5/25.
3 | */
4 | import React, {PureComponent} from 'react'
5 | import {
6 | View,
7 | StatusBar
8 | } from 'react-native';
9 | import {Navigator} from 'react-native-deprecated-custom-components'
10 | import {observer, inject} from 'mobx-react/native'
11 | import Router from './common/Routers'
12 |
13 | @inject('app')
14 | @observer
15 | export default class App extends PureComponent {
16 |
17 | configureScene = route => {
18 | if (route.sceneConfig) return route.sceneConfig
19 |
20 | return {
21 | ...Navigator.SceneConfigs.PushFromRight,
22 | gestures: {} // 禁用左滑返回手势
23 | }
24 | }
25 |
26 | renderScene = (route, navigator) => {
27 | let Component = Router[route.id].default
28 | return
29 | }
30 |
31 | render() {
32 | const initialPage = __IOS__ ? 'TabBarView' : 'Splash'
33 | return (
34 |
35 |
36 |
41 |
42 | )
43 | }
44 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "736h",
7 | "filename" : "LaunchImage-800-Portrait-736h@3x.png",
8 | "minimum-system-version" : "8.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "orientation" : "landscape",
14 | "idiom" : "iphone",
15 | "extent" : "full-screen",
16 | "minimum-system-version" : "8.0",
17 | "subtype" : "736h",
18 | "scale" : "3x"
19 | },
20 | {
21 | "extent" : "full-screen",
22 | "idiom" : "iphone",
23 | "subtype" : "667h",
24 | "filename" : "LaunchImage-800-667h@2x.png",
25 | "minimum-system-version" : "8.0",
26 | "orientation" : "portrait",
27 | "scale" : "2x"
28 | },
29 | {
30 | "orientation" : "portrait",
31 | "idiom" : "iphone",
32 | "filename" : "Default@2x.png",
33 | "extent" : "full-screen",
34 | "minimum-system-version" : "7.0",
35 | "scale" : "2x"
36 | },
37 | {
38 | "extent" : "full-screen",
39 | "idiom" : "iphone",
40 | "subtype" : "retina4",
41 | "filename" : "Default-568h@2x.png",
42 | "minimum-system-version" : "7.0",
43 | "orientation" : "portrait",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/ios/iShiWuPai/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import "AppDelegate.h"
11 |
12 | #import
13 | #import
14 |
15 | @implementation AppDelegate
16 |
17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
18 | {
19 | NSURL *jsCodeLocation;
20 |
21 | jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
22 |
23 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
24 | moduleName:@"iShiWuPai"
25 | initialProperties:nil
26 | launchOptions:launchOptions];
27 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
28 |
29 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
30 | UIViewController *rootViewController = [UIViewController new];
31 | rootViewController.view = rootView;
32 | self.window.rootViewController = rootViewController;
33 | [self.window makeKeyAndVisible];
34 | return YES;
35 | }
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## iShiWuPai
2 |
3 | 如果你通过外链来到这个页面,本人要先表示感谢!项目其实很早就开始了,基本是自己学习`React Native`,并整合`Redux`和`MobX`的简单记录。正如你所见,项目并没有继续更新了,没有太多外因,权且理解为自己把重心稍微偏向了生活其他方面上。所以随着版本更新,项目是否能完美运行也是未知数,大家有兴趣可以按需查看源码。再次感谢各位的支持!感谢开源!
4 |
5 | > 附:[RNProjectPlayground](https://github.com/ljunb/RNProjectPlayground) 是刚开不久的仓库,主要是 `MobX` 和 `MST` 相关,也加入了混编部分,处理的是导航这方面;接口数据是与本仓库一致的,有兴趣可以移步查看。里面的 [`demos`](https://github.com/ljunb/RNProjectPlayground/tree/master/src/pages/demos) 目录,是自己一些实践尝试,一般与项目无关。
6 |
7 | ------------
8 |
9 | iShiWuPai是基于React Native实现的展示型美食类APP。该分支针对原生新版食物派开发,数据来源于[【薄荷】](http://www.boohee.com/),主要针对MobX练习,不做商业用途。目前已适配iOS和Android两端,适合刚入门React Native的朋友学习。Enjoy it!🎉🎉🎉
10 |
11 | ## 运行截图
12 | 
13 | 
14 | 
15 | 
16 | 
17 |
18 | ## 现有功能点
19 | 1. 食物百科、食物列表、二维码扫描、逛吃、逛吃详情、我的和登录等界面的UI搭建
20 | 2. 基于MobX实现状态栏颜色和数据管理
21 | 3. 二维码扫描成功添加等待提示
22 | 4. 网络状态检测高阶组件NetInfoDecorator的初级使用
23 | 5. 逛吃顶部Tab标题切换时,添加scale和color动画
24 |
25 | ## 运行
26 |
27 | ```
28 |
29 | ```
30 |
31 | ## 相关第三方库
32 | 1. [mobx](https://github.com/mobxjs/mobx)
33 | 2. [mobx-react](https://github.com/mobxjs/mobx-react)
34 | 3. [react-native-camera](https://github.com/lwansbrough/react-native-camera)
35 | 4. [react-native-easy-toast](https://github.com/crazycodeboy/react-native-easy-toast)
36 | 5. [react-native-scrollable-tab-view](https://github.com/skv-headless/react-native-scrollable-tab-view)
37 |
--------------------------------------------------------------------------------
/ios/iShiWuPai/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | 食物派RN
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSExceptionDomains
32 |
33 | localhost
34 |
35 | NSExceptionAllowsInsecureHTTPLoads
36 |
37 |
38 |
39 |
40 | NSCameraUsageDescription
41 | iShiWuPai想要使用您的相机
42 | NSLocationWhenInUseUsageDescription
43 |
44 | UIRequiredDeviceCapabilities
45 |
46 | armv7
47 |
48 | UISupportedInterfaceOrientations
49 |
50 | UIInterfaceOrientationPortrait
51 |
52 | UIViewControllerBasedStatusBarAppearance
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/ios/iShiWuPai-tvOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UIViewControllerBasedStatusBarAppearance
38 |
39 | NSLocationWhenInUseUsageDescription
40 |
41 | NSAppTransportSecurity
42 |
43 |
44 | NSExceptionDomains
45 |
46 | localhost
47 |
48 | NSExceptionAllowsInsecureHTTPLoads
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/android/app/BUCK:
--------------------------------------------------------------------------------
1 | # To learn about Buck see [Docs](https://buckbuild.com/).
2 | # To run your application with Buck:
3 | # - install Buck
4 | # - `npm start` - to start the packager
5 | # - `cd android`
6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8 | # - `buck install -r android/app` - compile, install and run application
9 | #
10 |
11 | lib_deps = []
12 |
13 | for jarfile in glob(['libs/*.jar']):
14 | name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')]
15 | lib_deps.append(':' + name)
16 | prebuilt_jar(
17 | name = name,
18 | binary_jar = jarfile,
19 | )
20 |
21 | for aarfile in glob(['libs/*.aar']):
22 | name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')]
23 | lib_deps.append(':' + name)
24 | android_prebuilt_aar(
25 | name = name,
26 | aar = aarfile,
27 | )
28 |
29 | android_library(
30 | name = "all-libs",
31 | exported_deps = lib_deps,
32 | )
33 |
34 | android_library(
35 | name = "app-code",
36 | srcs = glob([
37 | "src/main/java/**/*.java",
38 | ]),
39 | deps = [
40 | ":all-libs",
41 | ":build_config",
42 | ":res",
43 | ],
44 | )
45 |
46 | android_build_config(
47 | name = "build_config",
48 | package = "com.ishiwupai",
49 | )
50 |
51 | android_resource(
52 | name = "res",
53 | package = "com.ishiwupai",
54 | res = "src/main/res",
55 | )
56 |
57 | android_binary(
58 | name = "app",
59 | keystore = "//android/keystores:debug",
60 | manifest = "src/main/AndroidManifest.xml",
61 | package_type = "debug",
62 | deps = [
63 | ":app-code",
64 | ],
65 | )
66 |
--------------------------------------------------------------------------------
/src/store/feedBaseStore.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/02/28.
3 | */
4 | import {observable, computed, action, runInAction} from 'mobx'
5 | import {get} from '../common/HttpTool'
6 |
7 | export default class FeedStore {
8 | @observable feedList = [];
9 | @observable errorMsg = '';
10 | @observable page = 1;
11 | @observable isRefreshing = false;
12 | @observable isNoMore = true;
13 |
14 | constructor(categoryId) {
15 | this.categoryId = categoryId;
16 | this.fetchFeedList()
17 | }
18 |
19 | @action
20 | fetchFeedList = async () => {
21 | try {
22 | if (this.isRefreshing) this.page = 1
23 | const url = 'http://food.boohee.com/fb/v1/feeds/category_feed'
24 | const params = {
25 | page: this.page,
26 | category: this.categoryId,
27 | per: 10
28 | }
29 | const responseData = await get({url, params, timeout: 30}).then(res => res.json())
30 | const {feeds, page, total_pages} = responseData
31 |
32 | runInAction(() => {
33 | this.isRefreshing = false
34 | this.errorMsg = ''
35 | this.isNoMore = page >= total_pages
36 |
37 | if (this.page === 1) {
38 | this.feedList.replace(feeds)
39 | } else {
40 | this.feedList.splice(this.feedList.length, 0, ...feeds);
41 | }
42 | })
43 | } catch (error) {
44 | if (error.msg) {
45 | this.errorMsg = error.msg
46 | } else {
47 | this.errorMsg = error
48 | }
49 | }
50 | }
51 |
52 | @computed
53 | get isFetching() {
54 | return this.feedList.length === 0 && this.errorMsg === ''
55 | }
56 |
57 | @computed
58 | get isLoadMore() {
59 | return this.page !== 1
60 | }
61 | }
--------------------------------------------------------------------------------
/src/pages/TabBarView.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/5/26.
3 | */
4 | import React, {PureComponent} from 'react'
5 | import {observer, inject} from 'mobx-react/native'
6 | import Feed from './feed/Feed'
7 | import FoodEncyclopedia from './home/FoodEncyclopedia'
8 | import Profile from './profile/Profile'
9 | import TabBar from '../components/TabBar'
10 | import ScrollableTabView from 'react-native-scrollable-tab-view'
11 |
12 | const tabTitles = ['食物百科', '逛吃', '我的']
13 | const tabIcons = [
14 | require('../resource/ic_tab_search.png'),
15 | require('../resource/ic_tab_homepage.png'),
16 | require('../resource/ic_tab_my.png')
17 | ]
18 | const tabSelectedIcon = [
19 | require('../resource/ic_tab_search_select.png'),
20 | require('../resource/ic_tab_homepage_select.png'),
21 | require('../resource/ic_tab_my_select.png')
22 | ]
23 |
24 | @inject('app')
25 | @observer
26 | export default class TabBarView extends PureComponent {
27 |
28 | onChangeTab = ({i}) => {
29 | const {app} = this.props
30 | if (i === 1) {
31 | app.updateBarStyle('default')
32 | } else {
33 | app.updateBarStyle('light-content')
34 | }
35 | }
36 |
37 | renderTabBar = () => {
38 | return (
39 |
44 | )
45 | }
46 |
47 | render() {
48 | return (
49 |
56 |
57 |
58 |
59 |
60 | )
61 | }
62 | }
--------------------------------------------------------------------------------
/src/components/FeedMultiImageCell.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/12/1.
3 | */
4 | import React, {Component} from 'react';
5 | import {
6 | StyleSheet,
7 | View,
8 | Text,
9 | TouchableOpacity,
10 | Image,
11 | Dimensions
12 | } from 'react-native';
13 | const screenW = Dimensions.get('window').width;
14 |
15 | const FeedMultiImageCell = ({
16 | title,
17 | source,
18 | viewCount,
19 | images,
20 | onPress
21 | }) => {
22 | return (
23 |
28 | {title}
29 |
30 | {images.map((img, i) => {
31 | return (
32 |
38 | )
39 | })}
40 |
41 |
42 | {source}
43 |
44 |
48 | {viewCount}
49 |
50 |
51 |
52 | )
53 | };
54 |
55 | export default FeedMultiImageCell;
--------------------------------------------------------------------------------
/src/components/TabBar.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/8/21.
3 | */
4 | import React, { Component } from 'react'
5 | import {
6 | StyleSheet,
7 | View,
8 | Text,
9 | TouchableOpacity,
10 | Image,
11 | } from 'react-native'
12 |
13 | export default class TabBar extends Component {
14 | static propType = {
15 | goToPage : React.PropTypes.func,
16 | activeTab : React.PropTypes.number,
17 | tabs : React.PropTypes.array,
18 |
19 | tabNames : React.PropTypes.array,
20 | tabIconNames: React.PropTypes.array
21 | }
22 |
23 | render() {
24 | const { activeTab, selectedTabIconNames, tabIconNames, tabNames, goToPage } = this.props
25 |
26 | return (
27 |
28 | {this.props.tabs.map((tab, i) => {
29 | let color = activeTab === i ? 'red' : 'gray'
30 | let icon = activeTab === i ? selectedTabIconNames[i] : tabIconNames[i]
31 | return (
32 | goToPage(i)}
37 | >
38 |
39 |
40 | {tabNames[i]}
41 |
42 |
43 | )
44 | })}
45 |
46 | )
47 | }
48 | }
49 |
50 | const styles = StyleSheet.create({
51 | tabs: {
52 | flexDirection: 'row',
53 | height: 49,
54 | borderTopColor: '#d9d9d9',
55 | },
56 |
57 | tab: {
58 | flex: 1,
59 | justifyContent: 'center',
60 | alignItems: 'center',
61 | },
62 |
63 | tabItem: {
64 | flexDirection: 'column',
65 | alignItems: 'center',
66 | justifyContent: 'space-around'
67 | },
68 |
69 | icon: {
70 | width: 26,
71 | height: 26,
72 | marginBottom: 2
73 | }
74 | })
--------------------------------------------------------------------------------
/iShiWuPai.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/5/25.
3 | */
4 | import React from 'react'
5 | import {Animated, StyleSheet, View, Text, AppRegistry} from 'react-native'
6 | import {Provider} from 'mobx-react/native'
7 | import stores from './src/store'
8 | import NetInfoDecorator from './src/common/NetInfoDecorator'
9 | import App from './src'
10 |
11 | if (!__DEV__) {
12 | global.console = {
13 | log: () => {}
14 | }
15 | }
16 |
17 | @NetInfoDecorator
18 | export default class Root extends React.Component {
19 | constructor(props) {
20 | super(props);
21 | this.state = {
22 | promptPosition: new Animated.Value(0)
23 | }
24 | }
25 |
26 | componentWillReceiveProps(nextProps) {
27 | const {isConnected} = nextProps
28 | // 无网络
29 | if (!isConnected) {
30 | Animated.timing(this.state.promptPosition, {
31 | toValue: 1,
32 | duration: 200
33 | }).start(() => {
34 | setTimeout(() => {
35 | Animated.timing(this.state.promptPosition, {
36 | toValue: 0,
37 | duration: 200
38 | }).start()
39 | }, 2000);
40 | })
41 | }
42 | }
43 |
44 | render() {
45 | let positionY = this.state.promptPosition.interpolate({
46 | inputRange: [0, 1],
47 | outputRange: [-30, __IOS__ ? 20 : 0]
48 | });
49 | return (
50 |
51 |
52 |
53 |
54 |
55 | 网络异常,请检查网络稍后重试~
56 |
57 |
58 | )
59 | }
60 | }
61 |
62 | const styles = StyleSheet.create({
63 | netInfoView: {
64 | justifyContent: 'center',
65 | alignItems: 'center',
66 | height: 30,
67 | position: 'absolute',
68 | right: 0,
69 | left: 0,
70 | backgroundColor: gColors.theme
71 | },
72 | netInfoPrompt: {
73 | color: 'white',
74 | fontWeight: 'bold'
75 | }
76 | })
77 |
78 | AppRegistry.registerComponent('iShiWuPai', () => Root)
--------------------------------------------------------------------------------
/ios/iShiWuPaiTests/iShiWuPaiTests.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 | #import
12 |
13 | #import
14 | #import
15 |
16 | #define TIMEOUT_SECONDS 600
17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!"
18 |
19 | @interface iShiWuPaiTests : XCTestCase
20 |
21 | @end
22 |
23 | @implementation iShiWuPaiTests
24 |
25 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
26 | {
27 | if (test(view)) {
28 | return YES;
29 | }
30 | for (UIView *subview in [view subviews]) {
31 | if ([self findSubviewInView:subview matching:test]) {
32 | return YES;
33 | }
34 | }
35 | return NO;
36 | }
37 |
38 | - (void)testRendersWelcomeScreen
39 | {
40 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
41 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
42 | BOOL foundElement = NO;
43 |
44 | __block NSString *redboxError = nil;
45 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
46 | if (level >= RCTLogLevelError) {
47 | redboxError = message;
48 | }
49 | });
50 |
51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
54 |
55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
57 | return YES;
58 | }
59 | return NO;
60 | }];
61 | }
62 |
63 | RCTSetLogFunction(RCTDefaultLogFunction);
64 |
65 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
66 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
67 | }
68 |
69 |
70 | @end
71 |
--------------------------------------------------------------------------------
/src/components/FeedSingleImageCell.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/12/1.
3 | */
4 | import React from 'react'
5 | import {
6 | View,
7 | Text,
8 | TouchableOpacity,
9 | Image,
10 | StyleSheet
11 | } from 'react-native'
12 |
13 | const FeedSingleImageItem = ({
14 | title,
15 | source,
16 | viewCount,
17 | images,
18 | onPress
19 | }) => {
20 | return (
21 |
26 |
27 | {title}
28 |
29 | {source}
30 |
31 |
35 | {viewCount}
36 |
37 |
38 |
39 |
44 |
45 | )
46 | }
47 |
48 | const styles = StyleSheet.create({
49 | container: {
50 | width: gScreen.width,
51 | padding: 15,
52 | marginTop: 15,
53 | flexDirection: 'row',
54 | backgroundColor: '#fff',
55 | justifyContent: 'space-between'
56 | },
57 | title: {
58 | width: gScreen.width * 0.55,
59 | fontSize: 15
60 | },
61 | content: {
62 | flexDirection: 'row',
63 | justifyContent: 'space-between',
64 | alignItems: 'center'
65 | },
66 | imgWrapper: {
67 | flexDirection: 'row',
68 | alignItems: 'center',
69 | justifyContent: 'center'
70 | },
71 | image: {
72 | height: 80,
73 | width: (gScreen.width - 15 * 2 - 10 * 2) / 3
74 | },
75 | feedIcon: {
76 | width: 14,
77 | height: 14,
78 | marginRight: 3
79 | },
80 | viewCount: {
81 | color: 'rgb(150,150,150)',
82 | fontSize: 13
83 | }
84 | })
85 |
86 | export default FeedSingleImageItem
--------------------------------------------------------------------------------
/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | # Disabling obfuscation is useful if you collect stack traces from production crashes
20 | # (unless you are using a system that supports de-obfuscate the stack traces).
21 | -dontobfuscate
22 |
23 | # React Native
24 |
25 | # Keep our interfaces so they can be used by other ProGuard rules.
26 | # See http://sourceforge.net/p/proguard/bugs/466/
27 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
28 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
29 | -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
30 |
31 | # Do not strip any method/class that is annotated with @DoNotStrip
32 | -keep @com.facebook.proguard.annotations.DoNotStrip class *
33 | -keep @com.facebook.common.internal.DoNotStrip class *
34 | -keepclassmembers class * {
35 | @com.facebook.proguard.annotations.DoNotStrip *;
36 | @com.facebook.common.internal.DoNotStrip *;
37 | }
38 |
39 | -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
40 | void set*(***);
41 | *** get*();
42 | }
43 |
44 | -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
45 | -keep class * extends com.facebook.react.bridge.NativeModule { *; }
46 | -keepclassmembers,includedescriptorclasses class * { native ; }
47 | -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; }
48 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; }
49 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; }
50 |
51 | -dontwarn com.facebook.react.**
52 |
53 | # TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
54 | # See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
55 | -dontwarn android.text.StaticLayout
56 |
57 | # okhttp
58 |
59 | -keepattributes Signature
60 | -keepattributes *Annotation*
61 | -keep class okhttp3.** { *; }
62 | -keep interface okhttp3.** { *; }
63 | -dontwarn okhttp3.**
64 |
65 | # okio
66 |
67 | -keep class sun.misc.Unsafe { *; }
68 | -dontwarn java.nio.file.*
69 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
70 | -dontwarn okio.**
71 |
--------------------------------------------------------------------------------
/src/pages/Login.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/2/22.
3 | */
4 | import React, { PureComponent } from 'react'
5 | import {
6 | StyleSheet,
7 | View,
8 | Image,
9 | Text,
10 | TouchableOpacity
11 | } from 'react-native'
12 | import Header from '../components/Header'
13 | import {observer, inject} from 'mobx-react/native'
14 |
15 | @inject('app')
16 | @observer
17 | export default class Login extends PureComponent {
18 |
19 | accounts = [
20 | {name: 'QQ', icon: require('../resource/ic_account_qq.png')},
21 | {name: '微信', icon: require('../resource/ic_account_wechat.png')},
22 | {name: '微博', icon: require('../resource/ic_account_weibo.png')},
23 | {name: '薄荷', icon: require('../resource/ic_account_boohee.png')}
24 | ]
25 |
26 | componentWillMount() {
27 | const {app} = this.props
28 | app.barStyle === 'light-content' && app.updateBarStyle('default')
29 | }
30 |
31 | onBack = () => {
32 | const {navigator, onResetBarStyle} = this.props
33 | onResetBarStyle && onResetBarStyle()
34 | navigator.pop()
35 | }
36 |
37 | _renderAccountView = (account, key) => {
38 | const {name, icon} = account
39 | return (
40 | alert(name)}
44 | style={styles.accountItem}
45 | >
46 |
47 | {name}
48 |
49 | )
50 | }
51 |
52 | render() {
53 | return (
54 |
55 |
56 |
57 | 不用注册,用以下账号直接登录
58 |
59 | {this.accounts.map(this._renderAccountView)}
60 |
61 | 没有以上账号?
62 |
66 | 注册
67 |
68 |
69 |
70 | )
71 | }
72 | }
73 |
74 | const styles = StyleSheet.create({
75 | content: {
76 | paddingTop: 50
77 | },
78 | accountWrapper: {
79 | flexDirection: 'row',
80 | paddingHorizontal: 20,
81 | paddingTop: 15,
82 | paddingBottom: 30,
83 | justifyContent: 'space-between',
84 | },
85 | accountItem: {
86 | alignItems: 'center'
87 | },
88 | registerBtn: {
89 | width: gScreen.width * 0.4,
90 | marginTop: 20,
91 | height: 40,
92 | borderRadius: 20,
93 | backgroundColor: '#fff',
94 | justifyContent: 'center',
95 | alignItems: 'center',
96 | alignSelf: 'center'
97 | }
98 | })
--------------------------------------------------------------------------------
/src/components/FeedsCategoryBar.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/11/19.
3 | */
4 | import React, {Component} from 'react';
5 | import {
6 | StyleSheet,
7 | View,
8 | TouchableOpacity,
9 | Animated
10 | } from 'react-native'
11 |
12 | const DEFAULT_SCALE = 1
13 | const SELECT_SCALE = 1.2
14 | const DEFAULT_COLOR = 'black'
15 | const SELECT_COLOR = 'red'
16 |
17 | export default class FeedsCategoryBar extends Component {
18 | static propType = {
19 | goToPage: React.PropTypes.func,
20 | activeTab: React.PropTypes.number,
21 | tabs: React.PropTypes.array,
22 |
23 | tabNames: React.PropTypes.array
24 | }
25 |
26 | offsetX = new Animated.Value(0)
27 |
28 | componentDidMount() {
29 | this.props.scrollValue.addListener(this.setAnimationValue)
30 | }
31 |
32 | setAnimationValue = ({value}) => this.offsetX.setValue(value)
33 |
34 | render() {
35 | const {tabs} = this.props
36 | const indicatorX = this.offsetX.interpolate({
37 | inputRange: [0, tabs.length - 1],
38 | outputRange: [0, gScreen.width * (tabs.length - 1) / tabs.length]
39 | })
40 | return (
41 |
42 | {tabs.map((tab, i) => {
43 | const scale = this.offsetX.interpolate({
44 | inputRange: [i - 2, i - 1, i, i + 1, i + 2],
45 | outputRange: [DEFAULT_SCALE, DEFAULT_SCALE, SELECT_SCALE, DEFAULT_SCALE, DEFAULT_SCALE]
46 | })
47 | const color = this.offsetX.interpolate({
48 | inputRange: [i - 2, i - 1, i, i + 1, i + 2],
49 | outputRange: [DEFAULT_COLOR, DEFAULT_COLOR, SELECT_COLOR, DEFAULT_COLOR, DEFAULT_COLOR]
50 | })
51 |
52 | return (
53 |
54 | this.props.goToPage(i)}
58 | >
59 |
60 | {this.props.tabNames[i]}
61 |
62 |
63 |
64 | )
65 | })}
66 | {/*
67 |
68 | */}
69 |
70 | )
71 | }
72 | }
73 |
74 | const styles = StyleSheet.create({
75 | tabs: {
76 | flexDirection: 'row',
77 | height: 44,
78 | borderBottomColor: 'rgb(242, 242, 242)',
79 | borderBottomWidth: 1
80 | },
81 | tab: {
82 | flex: 1,
83 | justifyContent: 'center',
84 | alignItems: 'center',
85 | },
86 | indicatorContainer: {
87 | position: 'absolute',
88 | bottom: 7,
89 | height: 3,
90 | width: gScreen.width / 4,
91 | alignItems: 'center'
92 | },
93 | indicator: {
94 | backgroundColor: 'red',
95 | height: 3,
96 | width: 3,
97 | borderRadius: 1.5,
98 | }
99 | });
--------------------------------------------------------------------------------
/src/pages/feed/Feed.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 16/8/21.
3 | */
4 | import React, {PureComponent} from 'react';
5 | import {
6 | View,
7 | Image,
8 | TouchableOpacity,
9 | StyleSheet,
10 | } from 'react-native'
11 | import {Navigator} from 'react-native-deprecated-custom-components'
12 | import {observer, inject} from 'mobx-react/native'
13 | import ScrollableTabView from 'react-native-scrollable-tab-view'
14 | import FeedsCategoryBar from '../../components/FeedsCategoryBar'
15 | import FeedHomeList from './FeedHomeList';
16 | import FeedEvaluatingList from '../../pages/feed/FeedEvaluatingList'
17 | import FeedKnowledgeList from '../../pages/feed/FeedKnowledgeList';
18 | import FeedDelicacyList from '../../pages/feed/FeedDelicacyList';
19 |
20 | const titles = ['首页', '评测', '知识', '美食'];
21 | const controllers = [
22 | {categoryId: 1, controller: FeedHomeList},
23 | {categoryId: 2, controller: FeedEvaluatingList},
24 | {categoryId: 3, controller: FeedKnowledgeList},
25 | {categoryId: 4, controller: FeedDelicacyList}
26 | ]
27 |
28 | @inject('account')
29 | @observer
30 | export default class Home extends PureComponent {
31 |
32 | _pictureAction = () => {
33 | const {account: {name}} = this.props
34 | if (name) {
35 | alert(name)
36 | } else {
37 | this.props.navigator.push({
38 | id: 'Login',
39 | sceneConfig: Navigator.SceneConfigs.FloatFromBottom
40 | })
41 | }
42 | }
43 |
44 | render() {
45 | const {navigator} = this.props;
46 |
47 | return (
48 |
49 |
50 | }
52 | tabBarPosition='top'
53 | scrollWithoutAnimation={false}
54 | >
55 | {controllers.map((data, index) => {
56 | let Component = data.controller;
57 | return (
58 |
64 | )
65 | })}
66 |
67 |
68 | )
69 | }
70 | }
71 |
72 | const HeaderView = ({pictureAction}) => {
73 | return (
74 |
75 |
80 |
85 |
90 |
91 |
92 | )
93 | }
94 |
95 | const styles = StyleSheet.create({
96 | header: {
97 | flexDirection: 'row',
98 | height: gScreen.navBarHeight,
99 | paddingTop: gScreen.navBarPaddingTop,
100 | alignItems: 'center',
101 | borderBottomColor: '#d9d9d9',
102 | backgroundColor: 'white',
103 | justifyContent: 'center'
104 | },
105 | photo: {
106 | width: __IOS__ ? 44 : 50,
107 | height: __IOS__ ? 44 : 50,
108 | justifyContent: 'center',
109 | alignItems: 'center',
110 | position: 'absolute',
111 | right: 0,
112 | top: gScreen.navBarPaddingTop
113 | }
114 | })
--------------------------------------------------------------------------------
/src/pages/feed/FeedDelicacyList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/11/19.
3 | * 逛吃-知识
4 | */
5 | import React, {PureComponent} from 'react'
6 | import {
7 | StyleSheet,
8 | View,
9 | ListView,
10 | RefreshControl
11 | } from 'react-native'
12 | import {observer} from 'mobx-react/native'
13 | import {reaction} from 'mobx'
14 | import Loading from '../../components/Loading'
15 | import LoadMoreFooter from '../../components/LoadMoreFooter'
16 | import FeedSingleImageCell from '../../components/FeedSingleImageCell'
17 | import FeedMultiImageCell from '../../components/FeedMultiImageCell'
18 | import Toast from 'react-native-easy-toast'
19 | import FeedBaseStore from '../../store/feedBaseStore'
20 |
21 | const DELICACY_ID = 4
22 |
23 | @observer
24 | export default class FeedDelicacyList extends PureComponent {
25 |
26 | state = {
27 | dataSource: new ListView.DataSource({
28 | rowHasChanged: (row1, row2) => row1 !== row2,
29 | })
30 | };
31 |
32 | // 构造
33 | constructor(props) {
34 | super(props);
35 | // 初始状态
36 | this.delicacyListStore = new FeedBaseStore(DELICACY_ID)
37 | }
38 |
39 | componentDidMount() {
40 | reaction(
41 | () => this.delicacyListStore.page,
42 | () => this.delicacyListStore.fetchFeedList()
43 | );
44 | }
45 |
46 | componentWillReact() {
47 | const {errorMsg} = this.delicacyListStore
48 | errorMsg && this.toast.show(errorMsg)
49 | }
50 |
51 | _renderRow = feed =>
52 |
53 | _onRefresh = () => {
54 | this.delicacyListStore.isRefreshing = true;
55 | this.delicacyListStore.fetchFeedList()
56 | };
57 |
58 | _onEndReach = () => this.delicacyListStore.page++
59 |
60 | _renderFooter = () =>
61 |
62 | _onPressCell = feed => {
63 | this.props.navigator.push({
64 | id: 'FeedDetail',
65 | passProps: {feed}
66 | })
67 | }
68 |
69 | render() {
70 | const {isRefreshing, isFetching, feedList} = this.delicacyListStore
71 | return (
72 |
73 | {!isFetching &&
74 |
89 | }
90 | />
91 | }
92 |
93 | this.toast = toast}/>
94 |
95 | )
96 | }
97 | }
98 |
99 | class DelicacyItem extends PureComponent {
100 |
101 | static propTypes = {
102 | feed: React.PropTypes.object,
103 | onPress: React.PropTypes.func
104 | }
105 |
106 | _onPress = () => {
107 | const {feed, onPress} = this.props
108 | onPress && onPress(feed)
109 | }
110 |
111 | render() {
112 | const {feed: {title, source, tail, images}} = this.props
113 | const cellData = {title, source, images, viewCount: tail}
114 |
115 | if (images.length === 1) {
116 | return
117 | }
118 | return
119 | }
120 | }
121 |
122 | const styles = StyleSheet.create({
123 | listView: {
124 | flex: 1,
125 | backgroundColor: '#f5f5f5'
126 | }
127 | })
--------------------------------------------------------------------------------
/src/pages/feed/FeedKnowledgeList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/11/19.
3 | * 逛吃-知识
4 | */
5 | import React, {PureComponent} from 'react'
6 | import {
7 | StyleSheet,
8 | View,
9 | ListView,
10 | RefreshControl,
11 | } from 'react-native'
12 | import {observer} from 'mobx-react/native'
13 | import {reaction} from 'mobx'
14 | import Loading from '../../components/Loading'
15 | import LoadMoreFooter from '../../components/LoadMoreFooter'
16 | import FeedSingleImageCell from '../../components/FeedSingleImageCell'
17 | import FeedMultiImageCell from '../../components/FeedMultiImageCell'
18 | import Toast from 'react-native-easy-toast'
19 | import FeedBaseStore from '../../store/feedBaseStore'
20 |
21 | const KNOWLEDGE_ID = 3
22 |
23 | @observer
24 | export default class FeedKnowledgeList extends PureComponent {
25 |
26 | state = {
27 | dataSource: new ListView.DataSource({
28 | rowHasChanged: (row1, row2) => row1 !== row2,
29 | })
30 | }
31 |
32 | knowledgeListStore = new FeedBaseStore(KNOWLEDGE_ID)
33 |
34 | componentDidMount() {
35 | reaction(
36 | () => this.knowledgeListStore.page,
37 | () => this.knowledgeListStore.fetchFeedList()
38 | )
39 | }
40 |
41 | componentWillReact() {
42 | const {errorMsg} = this.knowledgeListStore
43 | errorMsg && this.toast.show(errorMsg)
44 | }
45 |
46 | _renderRow = (feed) =>
47 |
48 | _onPressCell = feed => {
49 | this.props.navigator.push({
50 | id: 'FeedDetail',
51 | passProps: {feed}
52 | })
53 | }
54 |
55 | _onRefresh = () => {
56 | this.knowledgeListStore.isRefreshing = true
57 | this.knowledgeListStore.fetchFeedList()
58 | }
59 |
60 | _onEndReach = () => this.knowledgeListStore.page ++
61 |
62 | _renderFooter = () =>
63 |
64 | render() {
65 | const {feedList, isRefreshing, isFetching} = this.knowledgeListStore
66 | return (
67 |
68 | {!isFetching &&
69 |
84 | }
85 | />
86 | }
87 |
88 | this.toast = toast}/>
89 |
90 | )
91 | }
92 | }
93 |
94 | class KnowledgeItem extends PureComponent {
95 |
96 | static propTypes = {
97 | feed: React.PropTypes.object,
98 | onPress: React.PropTypes.func
99 | }
100 |
101 | _onPress = () => {
102 | const {feed, onPress} = this.props
103 | onPress && onPress(feed)
104 | }
105 |
106 | render() {
107 | const {feed: {title, source, tail, images}} = this.props
108 | const cellData = {title, source, images, viewCount: tail}
109 |
110 | if (images.length == 1) {
111 | return
112 | }
113 | return
114 | }
115 | }
116 |
117 | const styles = StyleSheet.create({
118 | listView: {
119 | flex: 1,
120 | backgroundColor: '#f5f5f5'
121 | },
122 | loadingContainer: {
123 | height: 40,
124 | justifyContent: 'center',
125 | alignItems: 'center',
126 | flexDirection: 'row'
127 | }
128 | })
--------------------------------------------------------------------------------
/src/components/ShareView.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/11/19.
3 | */
4 | import React, {Component} from 'react'
5 | import {
6 | StyleSheet,
7 | Text,
8 | Animated,
9 | Dimensions,
10 | TouchableOpacity
11 | } from 'react-native'
12 | const {height, width} = Dimensions.get('window')
13 | const CHANNEL_HEIGHT = 150
14 | const ANIMATION_DURATION = 200
15 |
16 | export default class ShareView extends Component {
17 | state = {
18 | isShow: false,
19 | shareContent: '',
20 | coverOpacityValue: new Animated.Value(0),
21 | coverPositionLeftValue: new Animated.Value(0),
22 | channelBottomValue: new Animated.Value(0),
23 | }
24 |
25 | share = shareContent => {
26 | this.setState({
27 | isShow: true,
28 | shareContent
29 | })
30 | Animated.parallel([
31 | Animated.timing(this.state.coverOpacityValue, {
32 | toValue: 1,
33 | duration: ANIMATION_DURATION
34 | }),
35 | Animated.timing(this.state.channelBottomValue, {
36 | toValue: 1,
37 | duration: ANIMATION_DURATION
38 | })
39 | ]).start()
40 | }
41 |
42 | close = () => {
43 | Animated.sequence([
44 | Animated.timing(this.state.channelBottomValue, {
45 | toValue: 0,
46 | duration: ANIMATION_DURATION
47 | }),
48 | Animated.timing(this.state.coverPositionLeftValue, {
49 | toValue: 1,
50 | duration: ANIMATION_DURATION,
51 | })
52 | ]).start(() => {
53 | this.state.coverPositionLeftValue.setValue(0);
54 | this.state.coverOpacityValue.setValue(0);
55 | this.setState({isShow: false})
56 | });
57 | }
58 |
59 | shareChannelItemOnPress = channelName => {
60 | alert(channelName)
61 | }
62 |
63 | render() {
64 | if (!this.state.isShow) return null
65 |
66 | let styleProps = {
67 | coverOpacityValue: this.state.coverOpacityValue,
68 | coverPositionLeft: this.state.coverPositionLeftValue.interpolate({
69 | inputRange: [0, 1],
70 | outputRange: [0, width]
71 | }),
72 | channelPositionBottom: this.state.channelBottomValue.interpolate({
73 | inputRange: [0, 1],
74 | outputRange: [-CHANNEL_HEIGHT, 0]
75 | })
76 | }
77 | let channelProps = {
78 | shareChannels: ['QQ', '微信', '朋友圈', '新浪微博'],
79 | channelImages: []
80 | }
81 |
82 | return (
83 |
89 | )
90 | }
91 | }
92 |
93 | const ChannelContainer = ({
94 | coverOpacityValue,
95 | coverPositionLeft,
96 | channelPositionBottom,
97 | coverViewOnPress,
98 | shareChannels,
99 | shareChannelItemOnPress
100 | }) => {
101 | return (
102 |
103 |
108 |
109 | {shareChannels.map((channelName, index) => {
110 | return (
111 | shareChannelItemOnPress(channelName)}
114 | >
115 | {channelName}
116 |
117 | )
118 | })}
119 |
120 |
121 | )
122 | }
123 |
124 | const styles = StyleSheet.create({
125 | container: {
126 | position: 'absolute',
127 | top: 0,
128 | right: 0,
129 | left: 0,
130 | height: height,
131 | backgroundColor: 'rgba(1,1,1,0.5)'
132 | },
133 | shareChannel: {
134 | position: 'absolute',
135 | left: 0,
136 | right: 0,
137 | height: CHANNEL_HEIGHT,
138 | backgroundColor: '#d5d5d5'
139 | }
140 | });
--------------------------------------------------------------------------------
/src/components/Header.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/3/15.
3 | */
4 | import React, {Component} from 'react'
5 | import {
6 | StyleSheet,
7 | View,
8 | Text,
9 | TouchableOpacity,
10 | Image
11 | } from 'react-native'
12 |
13 |
14 | const LeftItem = ({onPress}) => {
15 | return (
16 |
21 |
25 |
26 | )
27 | }
28 |
29 | const RightItem = ({onPress, text}) => {
30 | return (
31 |
36 | {text}
37 |
38 | )
39 | }
40 |
41 | const RightIconItem = ({onPress, icon}) => {
42 | return (
43 |
48 |
49 |
50 | )
51 | }
52 |
53 | export default class Header extends Component {
54 | static propTypes = {
55 | style: View.propTypes.style,
56 | title: React.PropTypes.string,
57 | showGoBack: React.PropTypes.bool,
58 | onBack: React.PropTypes.func,
59 | titleStyle: React.PropTypes.object,
60 | rightTitle: React.PropTypes.string,
61 | onRight: React.PropTypes.func,
62 | rightIcon: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]),
63 | renderRightItem: React.PropTypes.func
64 | }
65 |
66 | static defaultProps = {
67 | showGoBack: true
68 | }
69 |
70 | render() {
71 | const {
72 | title, titleStyle,
73 | showGoBack, onBack,
74 | style, rightTitle, onRight, rightIcon,
75 | renderRightItem
76 | } = this.props
77 |
78 | return (
79 |
80 | {showGoBack && }
81 | {title || ''}
82 | {rightTitle && }
83 | {rightIcon && }
84 | {renderRightItem &&
85 |
90 | {renderRightItem()}
91 |
92 | }
93 |
94 | )
95 | }
96 | }
97 |
98 | const styles = StyleSheet.create({
99 | header: {
100 | height: __ANDROID__ ? 50 : 64,
101 | width: gScreen.width,
102 | paddingTop: __ANDROID__ ? 0 : 20,
103 | justifyContent: 'center',
104 | alignItems: 'center',
105 | borderColor: gColors.border,
106 | borderBottomWidth: StyleSheet.hairlineWidth,
107 | backgroundColor: '#fff'
108 | },
109 | title: {
110 | textAlign: 'center',
111 | color: '#666',
112 | fontSize: 18,
113 | },
114 | leftItem: {
115 | position: 'absolute',
116 | top: __ANDROID__ ? 0 : 20,
117 | left: 0,
118 | height: __ANDROID__ ? 50 : 44,
119 | width: 60,
120 | paddingLeft: 5,
121 | justifyContent: 'center'
122 | },
123 | rightItem: {
124 | position: 'absolute',
125 | top: __ANDROID__ ? 0 : 20,
126 | right: 0,
127 | height: __ANDROID__ ? 50 : 44,
128 | paddingRight: 10,
129 | justifyContent: 'center',
130 | alignItems: 'flex-end'
131 | },
132 | rightIconItem: {
133 | position: 'absolute',
134 | top: __ANDROID__ ? 0 : 20,
135 | right: 0,
136 | height: __ANDROID__ ? 50 : 44,
137 | paddingRight: 10,
138 | justifyContent: 'center',
139 | alignItems: 'flex-end'
140 | },
141 | renderRight: {
142 | position: 'absolute',
143 | top: __ANDROID__ ? 0 : 20,
144 | right: 0,
145 | height: __ANDROID__ ? 50 : 44,
146 | paddingRight: 10,
147 | justifyContent: 'center',
148 | alignItems: 'flex-end'
149 | }
150 | })
--------------------------------------------------------------------------------
/src/pages/feed/FeedEvaluatingList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2016/11/19.
3 | * 逛吃-评测
4 | */
5 | import React, {PureComponent} from 'react';
6 | import {
7 | StyleSheet,
8 | View,
9 | Text,
10 | ListView,
11 | Image,
12 | TouchableOpacity,
13 | RefreshControl
14 | } from 'react-native';
15 | import {observer} from 'mobx-react/native'
16 | import {reaction} from 'mobx'
17 | import Loading from '../../components/Loading'
18 | import LoadMoreFooter from '../../components/LoadMoreFooter'
19 | import Toast from 'react-native-easy-toast'
20 | import FeedBaseStore from '../../store/feedBaseStore'
21 |
22 | const EVALUATING_ID = 2
23 |
24 | @observer
25 | export default class FeedEvaluatingList extends PureComponent {
26 |
27 | state = {
28 | dataSource: new ListView.DataSource({
29 | rowHasChanged: (row1, row2) => row1 !== row2,
30 | })
31 | }
32 |
33 | evaluatingListStore = new FeedBaseStore(EVALUATING_ID)
34 |
35 | componentDidMount() {
36 | reaction(
37 | () => this.evaluatingListStore.page,
38 | () => this.evaluatingListStore.fetchFeedList()
39 | )
40 | }
41 |
42 | componentWillReact() {
43 | const {errorMsg} = this.evaluatingListStore
44 | errorMsg && this.toast.show(errorMsg)
45 | }
46 |
47 | _onRefresh = () => {
48 | this.evaluatingListStore.isRefreshing = true
49 | this.evaluatingListStore.fetchFeedList()
50 | }
51 |
52 | _onEndReach = () => this.evaluatingListStore.page ++
53 |
54 | _onPressCell = feed => {
55 | this.props.navigator.push({
56 | id: 'FeedDetail',
57 | passProps: {feed}
58 | })
59 | }
60 |
61 | _renderRow = feed =>
62 |
63 | _renderFooter = () =>
64 |
65 | render() {
66 | const {isFetching, isRefreshing, feedList} = this.evaluatingListStore
67 |
68 | return (
69 |
70 | {!isFetching &&
71 |
85 | }
86 | />
87 | }
88 |
89 | this.toast = toast}/>
90 |
91 | )
92 | }
93 | }
94 |
95 | class EvaluatingItem extends PureComponent {
96 |
97 | static propTypes = {
98 | feed: React.PropTypes.object,
99 | onPress: React.PropTypes.func
100 | }
101 |
102 | _onPress = () => {
103 | const {feed, onPress} = this.props
104 | onPress && onPress(feed)
105 | }
106 |
107 | render() {
108 | const {feed} = this.props
109 | return (
110 |
115 |
116 | {feed.source}
117 | {feed.title}
118 |
119 |
123 | {feed.tail}
124 |
125 |
126 |
127 | )
128 | }
129 | }
130 |
131 | const styles = StyleSheet.create({
132 | listView: {
133 | flex: 1,
134 | backgroundColor: '#f5f5f5'
135 | },
136 | image: {
137 | width: gScreen.width - 15 * 2,
138 | height: gScreen.height * 0.3,
139 | paddingVertical: 20,
140 | alignItems: 'center',
141 | justifyContent: 'space-between',
142 | backgroundColor: 'transparent'
143 | },
144 | feedTitle: {
145 | color: '#fff',
146 | fontSize: 16,
147 | fontWeight: 'bold',
148 | width: gScreen.width * 0.62,
149 | textAlign: 'center',
150 | lineHeight: 20,
151 | backgroundColor: 'rgba(1,1,1,0)'
152 | },
153 | imageContentWrapper: {
154 | flexDirection: 'row',
155 | justifyContent: 'center',
156 | alignItems: 'center'
157 | }
158 | })
--------------------------------------------------------------------------------
/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # For Cygwin, ensure paths are in UNIX format before anything is touched.
46 | if $cygwin ; then
47 | [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48 | fi
49 |
50 | # Attempt to set APP_HOME
51 | # Resolve links: $0 may be a link
52 | PRG="$0"
53 | # Need this for relative symlinks.
54 | while [ -h "$PRG" ] ; do
55 | ls=`ls -ld "$PRG"`
56 | link=`expr "$ls" : '.*-> \(.*\)$'`
57 | if expr "$link" : '/.*' > /dev/null; then
58 | PRG="$link"
59 | else
60 | PRG=`dirname "$PRG"`"/$link"
61 | fi
62 | done
63 | SAVED="`pwd`"
64 | cd "`dirname \"$PRG\"`/" >&-
65 | APP_HOME="`pwd -P`"
66 | cd "$SAVED" >&-
67 |
68 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
69 |
70 | # Determine the Java command to use to start the JVM.
71 | if [ -n "$JAVA_HOME" ] ; then
72 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
73 | # IBM's JDK on AIX uses strange locations for the executables
74 | JAVACMD="$JAVA_HOME/jre/sh/java"
75 | else
76 | JAVACMD="$JAVA_HOME/bin/java"
77 | fi
78 | if [ ! -x "$JAVACMD" ] ; then
79 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
80 |
81 | Please set the JAVA_HOME variable in your environment to match the
82 | location of your Java installation."
83 | fi
84 | else
85 | JAVACMD="java"
86 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
87 |
88 | Please set the JAVA_HOME variable in your environment to match the
89 | location of your Java installation."
90 | fi
91 |
92 | # Increase the maximum file descriptors if we can.
93 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
94 | MAX_FD_LIMIT=`ulimit -H -n`
95 | if [ $? -eq 0 ] ; then
96 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
97 | MAX_FD="$MAX_FD_LIMIT"
98 | fi
99 | ulimit -n $MAX_FD
100 | if [ $? -ne 0 ] ; then
101 | warn "Could not set maximum file descriptor limit: $MAX_FD"
102 | fi
103 | else
104 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
105 | fi
106 | fi
107 |
108 | # For Darwin, add options to specify how the application appears in the dock
109 | if $darwin; then
110 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
111 | fi
112 |
113 | # For Cygwin, switch paths to Windows format before running java
114 | if $cygwin ; then
115 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158 | function splitJvmOpts() {
159 | JVM_OPTS=("$@")
160 | }
161 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
163 |
164 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
165 |
--------------------------------------------------------------------------------
/src/components/Scanner.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ljunb on 2017/2/25.
3 | */
4 | import React, {Component} from 'react'
5 | import {
6 | StyleSheet,
7 | View,
8 | Text,
9 | Image,
10 | TouchableOpacity,
11 | Animated
12 | } from 'react-native'
13 | import Camera from 'react-native-camera'
14 |
15 | const ScannerHeader = ({onPress}) => {
16 | return (
17 |
18 |
23 |
25 | 返回
26 |
27 |
28 | )
29 | }
30 |
31 | const ScannerPromptTitle = () => {
32 | return (
33 |
34 |
35 | 请将食物条形码放入圈内
36 |
37 | )
38 | }
39 |
40 | export default class Scanner extends Component {
41 |
42 | state = {
43 | isBarCodeRead: false
44 | }
45 |
46 | componentWillUnmount() {
47 | this.timer && clearTimeout(this.timer)
48 | }
49 |
50 | _onBack = () => this.props.navigator.pop()
51 |
52 | _onBarCodeRead = obj => {
53 | const {onBarCodeRead, navigator} = this.props
54 | if (this.state.isBarCodeRead) return
55 |
56 | this.setState({isBarCodeRead: true}, () => {
57 | this.scannerPrompt.show()
58 | this.timer = setTimeout(() => {
59 | navigator.pop()
60 | onBarCodeRead && onBarCodeRead(obj)
61 |
62 | this.scannerPrompt.hide()
63 | }, 2500)
64 | })
65 | }
66 |
67 | render() {
68 | return (
69 | this.camera = camera}
71 | style={{width: gScreen.width, height: gScreen.height}}
72 | aspect={Camera.constants.Aspect.fill}
73 | onBarCodeRead={this._onBarCodeRead}
74 | >
75 |
76 |
77 |
78 | this.scannerPrompt = s}/>
79 |
80 | )
81 | }
82 | }
83 |
84 | class ScannerAnimatedContent extends Component {
85 | state = {
86 | down: true,
87 | positionAnimatedValue: new Animated.Value(0)
88 | }
89 |
90 | componentDidMount() {
91 | this._startAnimation()
92 | }
93 |
94 | _startAnimation = () => {
95 | Animated.timing(this.state.positionAnimatedValue, {
96 | toValue: this.state.down ? 1 : 0,
97 | duration: 1500
98 | }).start(() => {
99 | this.setState({down: !this.state.down}, () => this._startAnimation())
100 | })
101 | }
102 |
103 | render() {
104 | const positionY = this.state.positionAnimatedValue.interpolate({
105 | inputRange: [0, 1],
106 | outputRange: [0, gScreen.width * 0.7 - 2]
107 | })
108 | return (
109 |
110 |
114 |
119 |
120 |
121 | )
122 | }
123 | }
124 |
125 | class ScannerBarCodeReadPrompt extends Component {
126 |
127 | state = {
128 | isShow: false
129 | }
130 |
131 | show = () => this.setState({isShow: true})
132 |
133 | hide = () => this.setState({isShow: false})
134 |
135 | render() {
136 | if (!this.state.isShow) return null
137 |
138 | return (
139 |
140 |
141 | 扫描成功!
142 | 正在为您跳转页面,请稍等!
143 |
144 |
145 | )
146 | }
147 | }
148 |
149 | const styles = StyleSheet.create({
150 | header: {
151 | height: gScreen.navBarHeight,
152 | paddingTop: gScreen.navBarPaddingTop,
153 | backgroundColor: 'rgba(1,1,1,0.6)'
154 | },
155 | backBtnWrapper: {
156 | flexDirection: 'row',
157 | alignItems: 'center',
158 | height: gScreen.isIOS ? 44 : 50
159 | },
160 | scanArea: {
161 | height: gScreen.width * 0.7,
162 | width: gScreen.width * 0.7
163 | },
164 | scanLine: {
165 | position: 'absolute',
166 | height: 2,
167 | width: gScreen.width * 0.7,
168 | left: 0
169 | },
170 | scanPromptWrapper: {
171 | position: 'absolute',
172 | top: 0,
173 | left: 0,
174 | right: 0,
175 | bottom: 0,
176 | justifyContent: 'center',
177 | alignItems: 'center'
178 | },
179 | scanPrompt: {
180 | width: gScreen.width * 0.7 + 10 * 2,
181 | height: 150,
182 | borderRadius: 10,
183 | backgroundColor: 'rgba(1, 1, 1, 0.6)',
184 | justifyContent: 'center',
185 | alignItems: 'center'
186 | }
187 | })
--------------------------------------------------------------------------------