Giter VIP home page Giter VIP logo

ghubber's Introduction

GHubber (GitHub mobile client)

Yet another Mobile πŸ“± client for GitHub powered on react-native.

Download on the App Store Download on the App Store

Logo

GitHub release Build Status Greenkeeper badge PRs Welcome

How to get alpha version :atom:

Android

The app is an alpha and the easiest way to install will be Play Market Alpha version. To get access to the alpha, you should:

  1. Join Google Plus Group (needed to access in play market alpha page)
  2. https://play.google.com/apps/testing/com.ghubber
  3. https://play.google.com/store/apps/details?id=com.ghubber (refresh multiple times, maybe not allowed due delay in Google)

iOS

Please send a email to [email protected] with Subject: Invite me to GHubber TestFlight and your email, firstname, lastname.

Note: Be sure to incude the email you use for iTunes.

Installation

Before we start to develop app you should configure your env:

Common

  1. You should install NodeJS with NPM

OSX by brew:

brew install nodejs

Debian and Ubuntu:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
  1. Now you should install dependencies by NPM, inside project directory run:
npm install

If you have another OS

Android

  1. You should download and install Android Studio
  2. Run Android Studio and download default SDKs, don't forget to configure path(s)
export ANDROID_HOME=/Users/<user>/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
  1. Run emulator:

Way 1: Built-in Android emulator, use KVM on linux if it's installed for acceleration

Note: KVM and VirtualBox supposedly cannot coexist, or rather, VirtualBox won't run while the KVM modules are loaded in memory

The easy way will be to create a new device inside Android Studio, press run

Way 2: Genymotion is a cool emulator, it runs on VirtualBox

Run it, you will see ;)

Way 3: Run on real device (I didn't use this method for development, and I don't recommend it)

First you should enable Developer menu on Android, Google it or try:

  1. Go to the settings menu, and scroll down to "About phone." Tap it.
  2. Scroll down to the bottom again, where you see "Build number." (Your build number may vary from our's here.)
  3. Tap it seven (7) times. After the third tap, you'll see a playful dialog that says you're four taps away from being a developer. (If only it were that simple, eh?) Keep on tapping, and poof, you've got the developer settings back.

iOS

Note: Sorry, but for build iOS you should have macOS

It's pretty easy, you should install XCode by AppStore πŸ‘

Lets run ;)

Way 1

You should open 2 terminals

Inside second you should write:

npm run start

Inside first:

Android:

npm run android

iOS:

npm run ios

Way 2

Or just run npm run start:android or npm run start:ios depending on the platform πŸ˜„

Roadmap

Will be continued // @todo

  • AccountIssues
    • Overview
    • Filter by types
    • Infinity loading
    • Refreshing
  • Feed
    • Overview
    • Infinity loading
    • Refreshing
  • Profile
    • Overview
      • Information
      • Contributions Graph (Tablet only, for now)
      • Organizations
      • Pinned Repositories (will be in v0.5.0)
    • Repositories
    • Stars
    • Following
    • Followers
    • Gists
  • Repository
    • Overview
    • Issues
    • PRs
    • Watchers
  • Organization
    • Overview
    • Teams
    • Repositories
  • Pull Request
    • Overview
    • Close/re-open
    • Add/remove/edit comment
  • Issue
    • Overview
    • Close/re-open
    • Add/remove/edit comment

Sponsors

Thanks to our sponsors and supporters:

JetBrains
WebStorm

LICENSE

This project is open-sourced software licensed under the MIT License with Additions.

  • You are not able to edit About Page.
  • Delete any copyrights.
  • You are not able to fork/clone/rebuild repository to publish "YOU FORK NAME" to Play Market, ITunes or any app stores.

See the LICENSE file for more information.

ghubber's People

Contributors

aircoookie avatar arrterian avatar chinesedfan avatar greenkeeper[bot] avatar httpstersk avatar lex111 avatar oriolhub avatar ovr avatar prestaul avatar quatroka avatar quique avatar rafajaques avatar scottaglia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ghubber's Issues

Repository Issue

query($owner: String!, $name: String!, $number: Int!) {
    repository(owner: $owner, name: $name) {
        issue(number: $number) {
            title,
            body,
            state,
            reactionGroups {
                content,
                users {
                    totalCount
                }
            },
            author {
                login
            },
            comments(first: 30) {
                totalCount,
                nodes {
                  body,
                  viewerCanDelete,
                  viewerCanReact,
                  author {
                      login
                  }
                }
            }
        }
    }
}

NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object ...

https://sentry.io/ghubber/android/issues/315899834/

NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
    at io.sentry.RNSentryModule.captureBreadcrumb(RNSentryModule.java:172)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:363)
    at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:166)
    at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
...
(6 additional frame(s) were not displayed)

Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

Any code refactoring or Improvement

Hey!

Possible you are a new developer on the project who are trying to get T-Shirt from Hacktoberfest & GitHub, review code & submit us any new idea that can help us to improve code quality

Thank, and have fun 😸

Organization screen

  1. Use GraphQL API to fetch organization with pinned repositories (first: 10)
  2. Implement new component RepositoryBlock (this block will be used inside Profile screen and Organization screen):
  3. Implement PinnedRepositories component, this will render RepositoryBlock's (We will reuse this block on Profile)

Due GitHub limitations, only six repositories can be pinned inside organizations or user profile

<PinnedRepositories repositories={organization.repositories}>
</PinnedRepositories>

This will help us to build grid, there are different dimmensions on mobile devices
for example on some tablets we can build 3x2 grid, on mobiles we can do 1x6

3x2:

|X|X|X|
|X|X|X|

2x3

|X|X|
|X|X|
|X|X|

1x6:

|X|
|X|
|X|
|X|
|X|
|X|

image

  1. Implement OrganizationScreen
  2. Implement navigation click on Profile organizations and SideMenu organizations

On organization page, There are two tabs:

image

  1. Overview:
  • Title
  • Info / description
  • Email
  • Pinned repositories

image

  1. Repositories

Similar to profile Reposiotires

image

Settings

  • Show Auth method (scopes, token, type)
  • Show isOptimized for tablet?

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Add localization

Not that this is a very necessary thing, but I think we can do it, support English and Russian - and why not? At least for educational purposes, especially as long as the application is not too large, I think it is not difficult to do this?

SideMenu

  • Organizations view
  • Profile view

Repository commits

Hey!

There is Repository screen inside project, We needed to show latest commits of the repository, use FlatList to implement list of commits

image

Thank

JavascriptException: Module AppRegistry is not a registered callable module (calling runApplication), stack:

https://sentry.io/ghubber/android/issues/280154097/

JavascriptException: Module AppRegistry is not a registered callable module (calling runApplication), stack:
value@22:2859
<unknown>@22:941
value@22:2401
value@22:913

    at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:99)
    at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:83)
    at java.lang.reflect.Method.invokeNative(Method.java)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(BaseJavaModule.java:368)
...
(8 additional frame(s) were not displayed)

Module AppRegistry is not a registered callable module (calling runApplication), stack:
value@22:2859
<unknown>@22:941
value@22:2401
value@22:913

Move application files to your own folder

E.g, in app or src. It's allows you to distinguish applications from RN files, and also to be able to search the entire app, because now everything is to the root folder.

@ovr what do you think?

Feed

  • EventRow
  • FeedSettings
  • Loading
  • Store inside AsyncStorage
  • Refreshing
  • Infinity loading

Invariant Violation: Attempted to update component `ProfileOrganizationsView` that has already been unmounted (or fail...

https://sentry.io/ghubber/android/issues/294449492/

Invariant Violation: Attempted to update component `ProfileOrganizationsView` that has already been unmounted (or failed to mount).
    at updateComponent(index.android.bundle:25042)
    at _performComponentUpdate(index.android.bundle:25123)
    at _updateRenderedComponent(index.android.bundle:25157)
    at _updateRenderedComponentWithNextElement(index.android.bundle:25170)
    at receiveComponent(index.android.bundle:23847)
...
(45 additional frame(s) were not displayed)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.