- Minimo dos personas en el pull request (las dos deben aprobar).
- Siempre se debe usar los dimens por defecto para tamaño de fuentes.
- En lo posible usar los "spacing" por defecto para margin, padding, etc.
Se debe separar las cadenas de texto por pantalla y nombrarlas de la siguiente manera:
<string name="login.title">Inicio de sesion.</string>
<string name="profile.logout">Cerrar sesion.</string>
Ningun String puede estar totalmente en mayuscula, usar textAllCaps para eso.
No importa que se repita un texto, si son de diferentes pantallas se deben crear ambos recursos.
Todos los colores deben estar dentro de colors.xml
con el formato RGBA. La idea es mantener simple la paleta de colores y no repetir valores con nombres diferentes.
No hacer esto:
<resources>
<color name="one_color">#2A91BD</color>
<color name="the_same_color">#2A91BD</color>
</resources>
Mejor, hacer esto:
<resources>
<!-- grayscale -->
<color name="gray">#939393</color>
<color name="gray_light">#DBDBDB</color>
<color name="gray_dark">#5F5F5F</color>
<!-- basic colors -->
<color name="white">#FFFFFF</color>
<color name="black">#323232</color>
<color name="green">#27D34D</color>
<color name="blue">#2A91BD</color>
<color name="orange">#FF9D2F</color>
<color name="red">#FF432F</color>
<!-- brand colors -->
<color name="red_brand_primary">#ea2127</color>
<color name="red_brand_secondary">#8c0a0e</color>
<color name="red_brand_dark">#d0534f</color>
</resources>
El nombre de cada archivo que se use como layout debe ser nombrado de la siguente manera:
Si una clase hereda de un componente Android, el nombre debe finalizar con el nombre del componente, por ejemplo:
TestActivity
TestFragment
TestService
TestDialogFragment
Component | Class Name | Layout Name |
---|---|---|
Activity | MapActivity |
activity_map.xml |
Fragment | ContactUsFragment |
fragment_contact_us.xml |
AdapterView item | --- | item_address.xml |
PartialLayout | --- | layout_home_market.xml |
Evitar crear jerarquias profundas de vistas usando, por ejemplo, muchos LinearLayouts anidados:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<RelativeLayout
...
>
<LinearLayout
...
>
<LinearLayout
...
>
<LinearLayout
...
>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
Es mejor tratar de optimizar usando RelativeLayouts o la etiqueta <merge>
.
Todos los ids que se usen para hacer referencia en la una actividad , fragmento ó vista deben ser nombrados de la siguente manera:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/rlSplash"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash"
android:orientation="vertical">
<ImageView
android:id="@+id/ivSplash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/ic_splash_prueba"
android:contentDescription="@string/app_name"
android:visibility="invisible"/>
<ImageView
android:id="@+id/ivSplashStorekeeper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/spacing_large"
android:background="@drawable/ic_splash_prueba"
android:contentDescription="@string/app_name"/>
</RelativeLayout>
En todos los pull request deben ir las imágenes adaptadas para las densidades definidas.
- mdpi
- xxhdpi
- xxxhdpi
- Todas las variables deben ir ordenadas por el tipo de dato.
- Todas las variables publicas y estáticas debe ir al principio del archivos y en mayúscula.
public class TestFragment extends BaseFragment {
public static String TAG = TestFragment.getClass().getSimpleName();
private TextView tvMessage;
private TextView tvCountry;
private RelativeLayout rlUnRegisteredUser;
private Button btnCancel;
private Button btnOk;
private User user;
private int count;
private int aux;
private boolean flag;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_test, container, false);
}
}
Mal
private String value, name, lastName;
Bien
private String value;
private String name;
private String lastName;
Los nombres de metodos deben explicar claramente que hacen y no ser genericos.
Deben ser claros para poder identificar el tipo de dato y la información que guardan
Antes de una anotacion siempre debe ir un salto de linea para evitar que se agrupen un monton de anotaciones y declaraciones de variables
Para manejar los estilos de fuente, tamaño y color, se trabajaria de la siguiente manera:
<style name="TextNormal">
<item name="android:textSize">@dimen/font_normal</item>
</style>
<style name="TextNormal.White" parent="TextNormal">
<item name="android:textColor">@color/white</item>
</style>
<style name="TextNormal.Black" parent="TextNormal">
<item name="android:textColor">@color/black</item>
</style>
<style name="TextNormal.White.Bold" parent="TextNormal.White">
<item name="android:textStyle">bold</item>
</style>
<style name="TextNormal.Black.Bold" parent="TextNormal.Black">
<item name="android:textStyle">bold</item>
</style>