Proyek WanAndroid yang mengagumkan didasarkan pada Desain Material + MVP + Rxjava2 + Retrofit + Dagger2 + GreenDao + Glide
Ini adalah aplikasi pembelajaran teknologi yang akan membuat Anda merasa sangat senang. Teknologi yang digunakan pada dasarnya mencakup kerangka teknologi arus utama yang biasa digunakan dalam pengembangan Android saat ini. Konten bacaannya terutama untuk teman-teman yang ingin menjadi ahli di bidang pengembangan Android. Selain itu, saya sedang mengerjakan rencana lanjutan Android baru, yang didedikasikan untuk menjadi pengembang Android yang lebih baik. Teman-teman yang tertarik dapat merujuknya~
Android Studio meminta agar kelas yang dihasilkan oleh Dagger tidak ada. Anda dapat mengkompilasi proyek secara langsung dan proyek tersebut akan dibuat secara otomatis oleh Dagger2.
Masih ada beberapa kekurangan dalam proyek ini. Jika Anda menemukan bug, silakan kirimkan email ([email protected]), atau PR.
Semua API dalam proyek ini berasal dari situs web WanAndroid. API tersebut murni untuk pembelajaran bersama dan tidak boleh digunakan untuk tujuan komersial! ! Jika Anda memiliki pertanyaan atau saran, silakan hubungi [email protected]
Kode proyek mencoba yang terbaik untuk mengikuti spesifikasi pengembangan Alibaba Java dan spesifikasi pengembangan Android Alibaba, dan memiliki komentar yang bagus.
Gunakan Rxjava2 yang dikombinasikan dengan Retrofit2 untuk membuat permintaan jaringan.
Gunakan operator Rxjava2 untuk mengonversi, menunda, memfilter, dan operasi lainnya pada aliran peristiwa. Gunakan operator Compose yang dikombinasikan dengan kelas alat RxUtils untuk menyederhanakan jumlah kode untuk panggilan peralihan thread.
Gunakan Dagger2 yang dikombinasikan dengan Dagger.Android untuk memasukkan Model ke dalam Presenter dan Presenter ke dalam Tampilan tanpa digabungkan, sehingga mewujudkan pola MVP dengan lebih efisien.
BasePresenter digunakan untuk mengintegrasikan siklus hidup langganan aliran peristiwa.
Gunakan ToolBar kumpulan Perilaku dalam Desain Material untuk menerapkan efek khusus "atas dan bawah" yang responsif.
Tombol mengambang yang dapat digeser ke atas digunakan di banyak tempat untuk meningkatkan kenyamanan membaca.
Gunakan animasi penyegaran yang kaya dari SmartRefreshLayout untuk meningkatkan keindahan proyek ke tingkat yang baru.
Tencent Bugly digunakan untuk memperbaiki bug dan CI pada proyek.
Animasi yang mempesona dan efek khusus digunakan di banyak tempat dalam proyek ini.
Pengujian unit cakupan tinggi dan beberapa pengujian UI.
Silakan Kloning proyek ini untuk melihat lebih banyak. . .
Lihat Analisis Sumber-Perpustakaan-Ketiga yang Luar Biasa
1. Ganti secara global bidang skema URL permintaan dengan https
2. Selesaikan bug dalam masalah ini
1. Menambahkan kolom akun resmi baru untuk mendukung pencarian di dalam akun resmi
2. Mengatasi bug di Bugly
1. Beradaptasi dengan versi Android O
2. Mengatasi bug di Bugly
1. Menambahkan pengujian unit pada lapisan Presenter dan pengujian UI otomatis pada beberapa lapisan Tampilan
2. Mengatasi bug yang membuat status login menjadi tidak valid setelah jangka waktu tertentu
3. Melakukan refactoring skala kecil yang sesuai
4. Mengatasi bug kompatibilitas Bugly
1. Tambahkan belati.android
2. Gunakan config.gradle untuk mengelola dependensi gradle secara seragam
3. Merangkum pemrosesan berlangganan RxBinding
4. Tambahkan pemrosesan adaptasi elemen bersama
5. Gunakan Compose untuk menambahkan pemrosesan hasil pengembalian terpadu
6. Tambahkan memori Glide, bitmapPool, konfigurasi diskCache
7. Optimalkan logika tampilan halaman kesalahan pemuatan
8. Optimalkan antarmuka pendaftaran
9. Optimalkan efek tampilan bilah status yang imersif
10.Perbarui versi Gradle ke 3.0.1
1. Tambahkan modul pengaturan
2. Pisahkan antarmuka situs web umum
3. Tambahkan item multi-label
4. Mempercantik detail menu antarmuka
5. Tambahkan animasi lompatan ActivityOption
6. Mengatasi lebih dari 90% kebocoran memori
1. Tambahkan manajemen langganan RxBus untuk mengatasi masalah kebocoran memori RxBus
2. Mengatasi masalah Webview yang terkadang tidak dapat dimuat.
3. Tambahkan RxPermission untuk menangani masalah izin Android 6.0
4. Respons dasar kelas dasar bersifat generik, mengurangi sejumlah besar kode entitas
5. Tambahkan halaman detail navigasi klasifikasi pengetahuan
6. Menambah dan menghapus catatan pencarian di halaman pencarian, dan antarmuka UI lebih indah.
7. Percantik UI proyek secara keseluruhan
1. Rasionalisasi struktur subkontrak proyek
2. Optimalkan modul pencarian
3. Tambahkan login otomatis
4. Tambahkan tautan cerdas TabLayout RecyclerView
5. Tambahkan bilah status yang imersif
6. Optimalkan gaya menu artikel detail
7. Percantik UI proyek secara keseluruhan
1.Kirimkan Awesome WanAndroid versi pertama
WanAndroid API disediakan oleh Hongyang
GeekNews memberikan ide arsitektur Dagger2 dan MVP
Ide implementasi efek khusus MD disediakan oleh Toutiao
Ide implementasi untuk tombol mengambang geser cerdas disediakan oleh diycode
Ide untuk mengimplementasikan efek khusus peralihan antarmuka pencarian disediakan oleh Eyepetizer-in-Kotlin
Selain itu, saya juga merujuk pada banyak proyek orang-orang terkemuka di dalam dan luar negeri. Terima kasih atas open sourcenya!
Petal menyediakan desain antarmuka UI yang indah, terima kasih Petal
iconfont Sumber daya ikon hebat Alibaba yang terbuka untuk dunia luar
Rxjava
RxAndroid
Pengikatan Rx
Retrofit
OkeHttp
Astaga
Meluncur
Belati2
Pisau kecil pemotong
Dao Hijau
Tata Letak Penyegaran Cerdas
Lottie-android
Saat ini, industri Android secara bertahap sudah jenuh dengan talenta, namun talenta senior masih langka. Yang sering kita temui adalah hanya ada 2 atau 3 kandidat yang cocok dari 100 resume, dan kebanyakan dari mereka bosan dengan bisnis, tidak meluangkan waktu untuk belajar dengan giat, atau tidak tahu apa yang harus dipelajari untuk meningkatkan keterampilannya. Bagi pengembang Android, sangat penting untuk membangun kerangka pengetahuan Android yang lengkap sedini mungkin, memahami poin pengetahuan pengujian umum yang sering muncul di produsen besar, dan menguasai keterampilan wawancara.
Tahun lalu, untuk memasuki pabrik tingkat pertama untuk melakukan hal-hal yang lebih menantang dan mendapatkan gaji yang lebih tinggi, saya mempersiapkan diri setengah tahun sebelumnya dan menyusun serangkaian pertanyaan wawancara yang sistematis dan berkualitas tinggi yang "menajamkan pedang saya untuk dua orang." tahun" . Selama setengah tahun, saya telah melakukan wawancara terus menerus, dan saya telah melakukan wawancara secara total Setelah setiap wawancara di dua puluh atau tiga puluh perusahaan, saya secara sistematis merangkum pertanyaan wawancara terkait dan jawaban terperinci, dan memperbaruinya ke dalam proyek wawancara saya. Sekarang, di bawah setiap modul, saya Pertanyaan yang sering diajukan tentang frekuensi sangat tinggi dan frekuensi tinggi telah disusun dengan cermat . Poin pengetahuan.
Pada tahun lalu, saya secara bertahap mengoptimalkan konten asli dan menambahkan banyak konten baru selama tinjauan saya terhadap wawancara praktis dengan perusahaan besar. Dapat dikatakan sebagai ringkasan intisari wawancara di perusahaan Internet tingkat pertama, sekaligus memuat konten tentang cara menulis resume dan keterampilan wawancara untuk wawancara, dan sangat mengurangi kesulitan mendapatkan pekerjaan yang baik.
Proyek wawancara ini berbeda dengan proyek wawancara Awesome-Android-Interview di Github saya: https://github.com/JsonChao/Awesome-Android-Interview. Awesome-Android-Interview dihentikan 2 tahun yang lalu (pada Pembaruan Oktober 2020) , isinya agak ketinggalan jaman, banyak poin di dalamnya yang tidak diungkapkan secara ketat, dan kandungan emas secara keseluruhan rendah. Bank soal wawancara yang ingin saya bagikan hari ini adalah pertanyaan wawancara sistematis dan berkualitas tinggi yang terus saya rangkum, perbaiki, dan kumpulkan selama dua tahun terakhir. Banyak pertanyaan inti di dalamnya telah berulang kali dikoreksi dan dikoreksi di bawah tekanan wawancara. Sublimasi, kandungan emas yang sangat tinggi.
Sebelum berbagi, satu hal yang perlu diperhatikan adalah Anda tidak boleh membocorkan informasinya! Jika Anda memikirkannya dengan cermat, Anda akan memahami:
1. Jika Anda terekspos dan orang yang mendapatkannya lebih cepat memahaminya dari Anda, masuk pabrik besar lebih awal, dan mendapat gaji tinggi, peluang Anda masuk pabrik besar akan semakin kecil sekarang, dan setiap wortel adalah sebuah jebakan.
2. Bank soal wawancara Awesome-Android-Interview versi sederhana yang saya bagikan secara publik dua tahun lalu masih digunakan sebagai bahan drainase oleh berbagai lembaga pelatihan, yang telah meningkatkan involusi Android saat ini. .
Jadi, ini harus diingat.
Cara mendapatkannya: Pindai kode QR di bawah ini.
Ini adalah proposisi yang telah saya teliti selama tujuh tahun terakhir. Pertama-tama, saya melakukan penelitian untuk diri saya sendiri, karena saya berasal dari kota kecil dan menetap di Shenzhen melalui serangan balik yang terus menerus. Semakin awam seseorang, semakin banyak kesabaran yang dibutuhkannya untuk melakukan perbaikan yang sistematis dan komprehensif. Dalam hal ini, saya memiliki pengalaman praktis dan metodologi yang sangat kaya . Oleh karena itu, saya memulai komunitas pertumbuhan "JsonChao", dengan harapan dapat menyelesaikan transformasi sistematis bersama Anda.
Akun publik saya JsonChao
telah dibuka, dengan fokus membangun sistem pengetahuan yang diperlukan untuk pengembangan Android di masa depan. Kami akan memberikan Anda artikel berkualitas tinggi setiap hari kerja sehingga Anda dapat menambah pengetahuan Anda setiap hari. Jika Anda ingin mendapatkan artikel terbaru dan update secepatnya, silakan scan dan follow~
Hak Cipta 2018 JsonChao
Berlisensi di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi di
http://www.apache.org/licenses/LICENSE-2.0
Kecuali diwajibkan oleh undang-undang yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan berdasarkan Lisensi didistribusikan berdasarkan DASAR "APA ADANYA", TANPA JAMINAN ATAU KETENTUAN APAPUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan batasan di bawah Lisensi.