Skip to content

Riningan/WowMount

Repository files navigation

WowMount

logo

About application

Application allow browse character mounts list by using data from Blizzard Api service.

Application architecture

MVP (Moxy) Single activity application with kodein injections. Data from repository send to presenters via interactor through Rx.

Used libraries:

Used libraries for test:

Code style conventions

General

Naming

Formatting

UI fragment naming

Fragment naming (Case-sensitive):

  • package ui.<name under_score without _>
  • fragment class <Name UpperCamelCase>Fragment.kt
  • view interface <Name UpperCamelCase>View.kt
  • presenter class <Name UpperCamelCase>Presenter.kt
  • res/layout fraqment_<name under_score>.xml
  • res/menu menu_<name under_score>.xml

Class organization

  • public fields
  • package-private fields
  • protected fields
  • private fields
  • properties
  • constructors
  • override class methods
  • override interface methods
  • inline methods
  • public methods
  • package-private methods
  • protected methods
  • private methods
  • abstract methods
  • enums
  • inner interface
  • inner class
  • companion objects

Views naming

android:id="@+id/<type><Fragment name UpperCamelCase><additional information UpperCamelCase>".

Ignoring AppCompat in view.

Types:

  • LinearLayout - ll
  • FrameLayout - fl
  • RelativeLayout - rl
  • CoordinatorLayout - crdl
  • ConstraintLayout - cnsl
  • TextView - tv
  • ImageView - iv
  • RecyclerView - rv
  • TabLayout - tl
  • ViewPager - vp
  • CheckBox - cb
  • Switch - swt
  • ToolBar - tlb
  • Button - btn
  • ImageButton - ibtn
  • ImageSwitcher - iswt
  • FloatingActionButton - fabtn
  • NestedScrollView - nsv
  • ScrollView - sv
  • BottomNavigationView - bnv
  • View - view
  • ProgressBar - pb
  • WebView - wv

Layout type naming

  • Activity - activity_<name under_score>
  • Fragment - fragment_<name>
  • Fragment for ViewPager - page_<parent fragment name>_<additional information>
  • Fragment for dialog - dialog_<parent fragment name>_<additional information>
  • Include - layout_<parent fragment name>_<additional information>
  • ViewHolder - item_<parent fragment name>_<additional information>
  • View - view_<additional information>

In case there layout using in several place, name must replace by all. Also in this case should be renamed all ids.

Download source code

For build project add client.secret=<get from Blizzard Api service> to local.properties.

And change CLIENT_ID in build.gradle app

LICENCE

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.