Giter Site home page Giter Site logo

qiitanium's Introduction

Qiitanium

icon

An unofficial Android application of technical information sharing service Qiita for programmers. (Article most of Japanese)

About Qiitanium GIF

Try out the application on the Play Store.

Get it on Google Play

Build


$ git clone https://github.com/ogaclejapan/Qiitanium
$ cd Qiitanium
$ ./gradlew installDebug

LICENSE

Copyright (C) 2014 ogaclejapan.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

qiitanium's People

Contributors

ogaclejapan avatar

Stargazers

jfujita57 avatar  avatar Shubham Suryavanshi avatar odenktools avatar kurodai avatar 青いほしぞら avatar ES avatar Safal Kumar Ghimire avatar kntk avatar Ivin avatar Shinra Yamakawa avatar Ankhetsin avatar  avatar  avatar Nao Oishi avatar jeremy avatar Liyuu avatar Luke Alex Reeve avatar zxkang avatar  avatar  avatar  avatar botman.cc avatar Yuta Nishimori avatar PaulZeng avatar mayuko hirono avatar Mr_liuzm avatar Akashj Pro avatar lihui avatar 狼子之心 avatar  avatar ikejin avatar  avatar  avatar Tepy Thai avatar Li Ning avatar Harish Uginval avatar Hcc avatar Nguyen Hoang Tuan avatar Takashi Tomobe avatar  avatar Probir Roy avatar hiroshi sakamoto avatar Yuki Nabeshima avatar dark avatar  avatar  avatar lymons avatar  avatar adakoda avatar guiliu.luo avatar iwata naoki avatar Kouta Imanaka avatar SogoodIT avatar FrancisTao avatar Aftab avatar Taiki Suzuki avatar Adriano Nascimento avatar  avatar Ahmed avatar  avatar Justin Nguyen avatar  avatar Hoa Nguyen avatar Khalid ElSayed avatar Sami MADINI avatar  avatar Dika Budiaji avatar yangzi avatar Justin avatar Tangxb avatar  avatar  avatar wangchang avatar  avatar m122469119 avatar Andy Nguyen avatar  avatar  avatar Zaicheng Qi avatar  avatar 快乐小叮当 avatar  avatar Manish Patel avatar  avatar  avatar Paul avatar  avatar Indrajit Chakrabarty avatar Zak B. Elep avatar Radek Piekarz avatar  avatar Tome Okin avatar Ikemura avatar pmaingi avatar ZiMo(熊文财) avatar WilsonL avatar  avatar oyuk avatar Jeffrey Xavier avatar

Watchers

william avatar James Cloos avatar Fumihiko Shiroyama avatar Trung Huynh avatar DavidDing avatar yaotian avatar  avatar gomazaba avatar Ren  Yu avatar Aftab avatar  avatar 尚晓东 avatar Joel avatar Pomelo avatar Ferris Pan avatar AiSee avatar  avatar

qiitanium's Issues

App crash right after launch

The app crashes right after I launch it on Nexus 5 Android M preview. (Not sure if it occurs in other environment as well.)

Below is the crash log I got when the app crashes:

08-09 02:46:35.398  19335-19335/com.ogaclejapan.qiitanium.dev E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.ogaclejapan.qiitanium.dev, PID: 19335
    java.lang.LinkageError: com.ogaclejapan.qiitanium.presentation.activity.BootActivity
            at dalvik.system.DexFile.defineClassNative(Native Method)
            at dalvik.system.DexFile.defineClass(DexFile.java:226)
            at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
            at dalvik.system.DexPathList.findClass(DexPathList.java:338)
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5415)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:725)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:615)

LeakCanary reporting a leak in ArticleFragment

Hello,
I apologize in advance -- if this is not the right venue to report the issue and ask for help.
I am using your application to teach myself android programming. I think your application combines best architecture practices (clean architecture concept) with the good use of Dagger 2 and Rx programming techniques -- that are necessary to build industrial strength android apps.

As I progress through the code, I noticed that LeakCanary is reporting leaks (this one below happens simply after clicking on a particular article and then going back (clicking the back button on top a few times).

Would like to ask if you had observed this behaviour in your development environment and and if yes, what did you attribute this leak to?

thank you in in advance


12-27 00:38:21.987 4353-4361/com.ogaclejapan.qiitanium.dev W/art: Suspending all threads took: 49.651ms
12-27 00:38:22.088 4353-4380/com.ogaclejapan.qiitanium.dev I/art: Explicit concurrent mark sweep GC freed 2037(120KB) AllocSpace objects, 1(36KB) LOS objects, 8% free, 21MB/23MB, paused 3.903ms total 126.901ms
12-27 00:38:34.911 4353-4361/com.ogaclejapan.qiitanium.dev W/art: Suspending all threads took: 104.984ms
12-27 00:38:36.048 4353-9002/com.ogaclejapan.qiitanium.dev D/LeakCanary: In com.ogaclejapan.qiitanium.dev:0.2.1-dev:4.
* com.ogaclejapan.qiitanium.presentation.fragment.ArticleFragment has leaked:
* GC ROOT static com.ogaclejapan.qiitanium.domain.model.Users.instances
* references java.util.WeakHashMap.elementData
* references array java.util.WeakHashMap$Entry[].[3]
* references java.util.WeakHashMap$Entry.value
* references com.ogaclejapan.qiitanium.domain.model.User.thumbnailUrl
* references com.ogaclejapan.rx.binding.RxProperty.subject
* references rx.subjects.BehaviorSubject.state
* references rx.subjects.SubjectSubscriptionManager.state
* references rx.subjects.SubjectSubscriptionManager$State.observers
* references array rx.subjects.SubjectSubscriptionManager$SubjectObserver[].[3]
* references rx.subjects.SubjectSubscriptionManager$SubjectObserver.actual
* references rx.observers.SafeSubscriber.actual
* references rx.Observable$33.val$observer (anonymous class extends rx.Subscriber)
* references com.ogaclejapan.rx.binding.RxProperty.subject
* references rx.subjects.BehaviorSubject.state
* references rx.subjects.SubjectSubscriptionManager.state
* references rx.subjects.SubjectSubscriptionManager$State.observers
* references array rx.subjects.SubjectSubscriptionManager$SubjectObserver[].[0]
* references rx.subjects.SubjectSubscriptionManager$SubjectObserver.actual
* references rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.child
* references rx.observers.SafeSubscriber.actual
* references rx.Observable$32.val$onNext (anonymous class extends rx.Subscriber)
* references com.ogaclejapan.rx.binding.RxWeakRef$1.val$action (anonymous class implements rx.functions.Action1)
* references com.ogaclejapan.qiitanium.presentation.fragment.ArticleAboutFragment$1.this$0 (anonymous class extends com.ogaclejapan.rx.binding.RxAction)
* references com.ogaclejapan.qiitanium.presentation.fragment.ArticleAboutFragment.viewModelHolder
* references com.ogaclejapan.qiitanium.presentation.activity.ArticleActivity.fragmentManager
* references android.app.FragmentManagerImpl.mAdded
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* leaks com.ogaclejapan.qiitanium.presentation.fragment.ArticleFragment instance
12-27 00:38:36.076 4353-4380/com.ogaclejapan.qiitanium.dev I/art: hprof: heap dump "/data/data/com.ogaclejapan.qiitanium.dev/files/suspected_leak_heapdump.hprof" starting...
12-27 00:38:39.225 4353-4380/com.ogaclejapan.qiitanium.dev I/art: hprof: heap dump completed (33MB) in 3.148s
12-27 00:38:39.238 4353-4353/com.ogaclejapan.qiitanium.dev D/AppActivityLifecycleCallbacks: com.ogaclejapan.qiitanium.presentation.activity.TopActivity@148819d6 ⟳ onActivityStarted
12-27 00:38:39.238 4353-4353/com.ogaclejapan.qiitanium.dev D/AppActivityLifecycleCallbacks: com.ogaclejapan.qiitanium.presentation.activity.TopActivity@148819d6 ⟳ onActivityResumed
12-27 00:38:39.275 4353-4418/com.ogaclejapan.qiitanium.dev W/EGL_emulation: eglSurfaceAttrib not implemented
12-27 00:38:39.275 4353-4418/com.ogaclejapan.qiitanium.dev W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa1703520, error=EGL_SUCCESS
12-27 00:38:39.479 4353-4380/com.ogaclejapan.qiitanium.dev I/art: Explicit concurrent mark sweep GC freed 5787(400KB) AllocSpace objects, 0(0B) LOS objects, 15% free, 21MB/25MB, paused 18.195ms total 191.144ms
12-27 00:38:40.010 4353-4361/com.ogaclejapan.qiitanium.dev W/art: Suspending all threads took: 314.460ms
12-27 00:38:43.811 4353-4353/com.ogaclejapan.qiitanium.dev D/AppActivityLifecycleCallbacks: com.ogaclejapan.qiitanium.presentation.activity.TopActivity@148819d6 ⟳ onActivityPaused
12-27 00:38:44.000 4353-4353/com.ogaclejapan.qiitanium.dev D/AppActivityLifecycleCallbacks: com.ogaclejapan.qiitanium.presentation.activity.TopActivity@148819d6 ⟳ onActivitySaveInstanceState
12-27 00:38:44.001 4353-4353/com.ogaclejapan.qiitanium.dev D/AppActivityLifecycleCallbacks: com.ogaclejapan.qiitanium.presentation.activity.TopActivity@148819d6 ⟳ onActivityStopped
12-27 00:38:44.362 4353-4361/com.ogaclejapan.qiitanium.dev W/art: Suspending all threads took: 134.083ms
12-27 00:38:45.352 4353-4361/com.ogaclejapan.qiitanium.dev W/art: Suspending all threads took: 21.056ms

Loadmore right after Pull to refresh

リストをpullした直後にloadmoreすると、アイテムが複製(duplicated?!)される場合があります。おそらく、ロードする時、アイテムリストをsynchronizeしなかったわけ?

あと、僕自分もQiitaクライアントを作ってますが、markdownの表示がうまく進めないためで止まってしまいます。Ogacleさんの解決方法(jsoup + html)は本当にすごい(simple, yet powerful/beautiful)ので、アイデアを借りて自分のものを完成させていただきたいと思います。

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.