gitpoint/git-point

Android Version

housseindjirdeh opened this issue ยท 36 comments

Since this is built with React Native, it only makes sense to include an Android version.

Unfortunately, I haven't once tried running the application on a Android emulator or device so there is definitely going to be quite a bit that needs to be done to have it working smoothly across both platforms.

I love the look of this app but can't use it since I run Android... so I spent 5ish minutes to see if there is anything that is a major showstopper for this to run on Android. My findings:

  • You need to hook up deep linking on Android. Add this to your main activity in AndroidManifest
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="gitpoint" />
</intent-filter>
  • react-native-search-bar is iOS only. Would need to either switch to something more cross platform or provide an Android alternative.

So far that is all i have as I haven't had a chance to work around the search bar issue. The screens I have seen working do look good on Android though so thumbs up there!

@rmevans9 I can't thank you enough for this. I'm so happy to hear that screens are looking quite good on Android ๐Ÿ™Œ . From the sounds of it, it doesn't look like there is too much to do ๐Ÿ˜ƒ

I'm going to tackle this in the coming week and hopefully have it up and running in around a week or so. Will post my updates here (and of course: any kind of contribution is always welcome!!)

I should probably point out I only saw like two screens because if the second issue pointed out.

Thank you, in that case you're right there are quite a few screens in the app so there may definitely be things to do in many of them (off the top of my head for example - I use ActionSheetIOS in a number of screens so will need to find a cross platform solution for that)

Two screens looking decent is still good news nevertheless! :)

After commenting out SearchBar in the 4 screen files I have the app up and working. I am sure that if I triggered anything that used ActionSheetIOS it would fail miserably.

image

image

image

Sweet sweet sweeet.

All in all it doesn't look too bad and I'm so glad :D. The tab bar looks completely out of place for one and screens without the navbar (like the notification's screen) makes things look a bit off I think.

Going to spend some time later this week running it myself and see how many things I can spot and smooth out. Thanks again for all the help, and please don't hesitate to put up a PR for anything if you feel like. Already appreciate you putting one up so fast :)

The tab bar is because react-navigation defaults to TabBarTop for Android with a tabBarPosition of top. You just need to force it to the bottom and tell it to use TabBarBottom and set the position. Looking at your code you already force it to TabBarBottom so it is a simple change to force it to the bottom. PR landing in ~30 seconds

ref: https://reactnavigation.org/docs/navigators/tab#TabNavigatorConfig

Cheers I had a feeling it was defaulted to the top for react-navigation, thank you :D

Don't forget to add yourself to the list of contributors in the README!

Alright - I think that is plenty productive for sitting in an airport. If you want or need further assistance just tag me here or if you just have a question you can find me hanging around the react-native channel in infinite red's OSS community slack - find the link in https://github.com/infinitered/reactotron readme. Can't wait to see this on the Google Play store!

Can't thank you enough for everything you've already done - will definitely keep you in the loop as things progress here ๐Ÿ™Œ

@housseindjirdeh I can assist with running on Android, I actually have a cross-platform wrapper for ActionSheet that I'm using in my own app that I can shoot you a PR for.

Thank you so much @Talor-A, any assistance would be extremely appreciated! And that's awesome - I was just planning to look for a cross-platform wrapper so I'm glad you already have one ๐Ÿ™Œ

I am looking forward the Android version too!

I made some revision for compatible with Android:
https://github.com/patw0929/git-point/tree/feature/android-version

We have two obvious issues, ActionSheetIOS & the search box are only compatible with iOS, so:

  • Using react-native-actionsheet to replace build-in ActionSheetIOS
  • Using react-native-search-box to replace the react-native-search-bar

I believe there still have some bugs, please kindly providing better way & advice to solve it.
Thanks.


Screenshots:

screenshot_20170714-010904
screenshot_20170714-010921
screenshot_20170714-010937
screenshot_20170714-011004
screenshot_20170714-011011
screenshot_20170714-010847

Hi! I've really liked what I've seen of this project so far.

I do not have any experience on react native or react whatsoever but I would love to collaborate doing QA for the android version as soon as it is up.

@patw0929 that looks outstanding!!!!! there may still be bugs but wow it's coming together so nicely :O

Will you putting up a PR for it soon? As long as the iOS functionality hasn't changed - let me know if you think it's in a good enough state to put up a PR

@andonyns I would love to help you get started with React Native by working on super simple issues in this repo. Happy to spend some time showing you the ropes to get started (only if you're interested enough however)

And of course that would be so useful! Will let you know as soon as an Android version is available for you to demo on your device ๐ŸŽ‰ . The more opinions/testing we do on devices the better.

@housseindjirdeh I would also help with Q/A on my Android device!

@pschfr I'll be sure to also shoot you a message so soon as Android is in <3 I owe you one mate :)

@housseindjirdeh IMHO instead of replacing the previous searchbar completely as @patw0929 suggested, I would simply declare two different wrappers: searchbar.android.js and searchbar.ios.js. RN will automatically choose the right one basing on the current running platform. Doing so we don't lose platform consistency. It's the same for the ActionSheet. I would use the actual ActionSheetIOS on iOS and something like react-native-bottom-sheet for Android (again, I would create two different files which can accept the same props: actionsheet.android.js and actionsheet.ios.js)

@jkomyno Thanks for advice, I will try this way tonight. :)

@jkomyno I think that's a great idea ๐Ÿ™Œ

So if I'm not mistaken - react-native-action-sheet wraps around ActionSheetIOS for iOS and it might just be easier to use it as a single solution. However , I don't exactly know how it renders the Action Sheet for Android and if it renders it the way it should. @patw0929 @jkomyno if we try and realize that it looks just fine on Android as well - I think I'm okay with this. However if another library (like react-native-bottom-sheet-behavior) actually bridges over to an Android interface and is more reasonable than I'm definitely onboard with splitting the logic out to not lose platform consistency.

With regards to the search bar, react-native-search-box doesn't seem to bridge over to a native iOS search bar so I'm definitely in favour of splitting the logic here and relying on (if it exists?) a native Android search bar wrapper

Yap, @housseindjirdeh you're right, react-native-action-sheet wraps ActionSheetIOS for iOS. And I'm not sure should we use other component for Android? Any better component?

And I already updated the PR #49, about the SearchBar component which depends on different platform:

  • Using react-native-search-bar on iOS (like before)
  • Using react-native-material-design-searchbar on Android (like @jkomyno's example gist)

Android's screenshot:
304479

Any suggestion? Thanks!

@patw0929, I hope that @housseindjirdeh will accept your PR soon, I look forward to help you all with the android version.
I saw that "profile.screen.js" wraps ActionSheetIOS too, we haven't put react-native-actionsheet yet? It should be cross-platform.

Citing from the repository:

ActionSheet is a cross-platform React Native component that uses the native UIActionSheet on iOS and a JS implementation on Android

@conema cheers thank you I appreciate the offer to help mate! I reviewed the PR and every ActionSheet should be referencing the correct one now :)

So thanks to the amazing work by @patw0929 - we're one step closer to having an Android version ๐ŸŽ‰

After playing around with it for some time - it looks really good design wise. There are definitely a more than a few styling quirks that still need to be fixed however.

The bigger issue I'm noticing is that navigations are slow. It seems to take 1-2 seconds to navigate between tabs or screens in a stack when running on an actual device (and I'm making sure logger or devtools isn't running. However if I debug JS remotely, it seems to run a lot smoother). I'm hoping that this is smoothed out when running a release type build but I'm not sure - will look into it deeper tomorrow.

One more thing is that there are red screens of death popping up quite a bit, so it'll definitely take a little bit of time to smooth things out.

@conema @pschfr @andonyns I'm going to spend a little more time tomorrow testing/running/logging issues and I'll love if you folks can try testing on your devices eventually. Doesn't have to be tomorrow since there's still fixes that need to be done but if you get the time in the week - it would be so appreciated <3

Excited seeing it all come together!

Update ๐Ÿ“ข ๐Ÿ“ข ๐Ÿ“ข ๐Ÿ“ข

So I've spent most of yesterday fixing any glaring issues with the Android build + various styling issues. There are probably definitely some more I haven't noticed just yet so I'll appreciate if anyone reading this would like to assist, to pull from latest in master and run it in their emulators/devices ๐ŸŒŸ ๐ŸŒŸ ๐ŸŒŸ ๐ŸŒŸ

One thing I still haven't gotten to the bottom of is that the app tends to run very slowly when I run it on a Samsung S8 and when I debug JS remotely through the browser, it's a lot faster. Will definitely appreciate if anyone can let me know how it runs on their devices (or does a release Android build run at much more normal speeds then debug builds??)

If there's anything you notice at all, please log an issue for it!! Styling, performance, crashes, suggestions - anything at all will be appreciated ๐Ÿ˜„

CC @conema @pschfr @andonyns @SammyIsra @everyoneelsewhowouldliketohelp

P.S We just opened a gitter chat so feel free to drop by and discuss there ๐ŸŽ‰

This might be dumb question but where do I download and install the Android version of this app?

@iamtekeste You don't -- that's the point of this issue. The Android version doesn't exist yet.

As @anowlcalledjosh said it's not published yet. I believe @housseindjirdeh is looking to try and submit it tonight or in the coming days :)

There's no such thing as a stupid question @iamtekeste :)

As @anowlcalledjosh and @andrewda said, it's not ready yet unfortunately! Once it is it'll be in the App Store (and will make it public so everyone knows ๐Ÿ‘ )

If you want to live on the bleeding edge you can pull down the latest master branch and run it on your device. You'll notice some performance hits however unless you build the app in release mode for production. However I would only advise this for testing purposes as there are some changes/fixes pending.

Production Build ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰

Just ran the release variant of the application on a Samsung S8. Things seem as smooth and performant as the iOS version of the app โญ๏ธ โญ๏ธ โญ๏ธ

android-gitpointdemo

We're excited - we should have the Android app up in the Play Store as soon as we smooth out some minor details/fixes as well as add a few core things that are missing.

tl.dr: GITPOINT IS COMING SOON TO ANDROID!!!

crazy-dance

It's just awesome. If I can help with documentation or any Google Playstore related work, let me know.

Thank you so much @benedyktdryl, we'll let you know without a doubt and I appreciate it ๐Ÿ™

The Android version is now available on Google Play ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰

Try it out, let us know what you folks think! We appreciate the patience and we're beyond happy to have it up and available for everyone to use.

A million thanks to all the amazing contributors who made this possible

This is awesome! Great work!!