Gina kalkuleta na tukwici a Kotlin: yaya yake aiki?
Muna nuna muku yadda ake ƙirƙirar aikace-aikacen ƙididdiga mai sauƙi a cikin Kotlin. Don zama daidai, Kotlin 1.3.21, Android 4, Android Studio 3. Labarin zai zama mai ban sha'awa, da farko, ga waɗanda suka fara tafiya a cikin haɓaka aikace-aikacen Android. Yana ba ku damar fahimtar abin da kuma yadda yake aiki a cikin aikace-aikacen.
Irin wannan kalkuleta yana da amfani lokacin da kake buƙatar ƙididdige adadin shawarwari daga kamfani wanda ya yanke shawarar ciyar da lokaci a gidan abinci ko cafe. Tabbas, ba kowa ba ne kuma ba koyaushe yana barin shayi ga masu jira ba, wannan shine mafi al'adar Yammacin Turai, amma tsarin haɓaka irin wannan aikace-aikacen yana da ban sha'awa a kowane hali.
Muna tunatarwa:ga duk masu karatu na "Habr" - rangwame na 10 rubles lokacin yin rajista a kowane kwas na Skillbox ta amfani da lambar talla "Habr".
Ga yadda app ɗin ke gudana lokacin da yake gudana:
Kuna shigar da adadin da ake so na jimlar adadin, adadin mahalarta taron kuma ku sami sakamakon - adadin shawarwarin da ya kamata a bar.
Farawa
Cikakkun aikace-aikacen yana kama da haka:
Mataki na farko - aikin tushe download. Bude shi a cikin Android Studio 3.0 ko kuma daga baya. Muna ginawa da gudanar da aikin kuma muna ganin farin allo. Komai yana da kyau, kamar yadda ya kamata.
Ayyukan mai amfani an rubuta su a cikin aikin a cikin tsari na lokaci-lokaci, domin komai ya bayyana. Don duba shi, buɗe Duba -> Kayan aiki Windows -> TODO.
Muna nazarin aikin kuma muna buɗe launuka.xml don kimanta palette mai launi. strings.xml ya ƙunshi bayanan rubutu (captions), kuma styles.xml ya ƙunshi samfuran rubutu da yawa.
Ci gaban Sashe na Farashin
Bude aiki_main.xml kuma ƙara lambar da ke ƙasa zuwa layin layi (#1):
Tunda babban aikin aikace-aikacen shine ƙididdige farashin mutum ɗaya ga kowane mahalarta a cikin taron a gidan abinci, farashiPersonTextView yana taka muhimmiyar rawa.
EditText yana iyakance shigarwa zuwa layi ɗaya, dole ne a saita wannan siga zuwa shigarwar NumberDecimalType.
Mun fara aikin don gwajin kuma shigar da sigogi na jimlar lalacewa (kofuna waɗanda suka karye, faranti, da sauransu)
Ci gaban sashen "Mutane da Nasiha".
Don ƙara mai zaɓin adadin tukwici, liƙa lambar da ke ƙasa cikin sabon sashin layi na layi (#4):
Ana buƙatar wannan yanki na lambar don ƙididdige adadin adadin daidai. Ƙimar rubutun tsoho ita ce 20. ImageButtons ana ba da gumaka a cikin babban fayil tare da izini na rubuta.
Dangane da maɓalli da maɓalli, Kotlin yana da komai da aka tsara sosai! Ƙara lambar da ke ƙasa zuwa duk ayyukan haɓakawa da raguwa
(#9-#12):
private fun incrementTip() {
if (tipPercent != MAX_TIP) {
tipPercent += TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun decrementTip() {
if (tipPercent != MIN_TIP) {
tipPercent -= TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun incrementPeople() {
if (numberOfPeople != MAX_PEOPLE) {
numberOfPeople += PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
private fun decrementPeople() {
if (numberOfPeople != MIN_PEOPLE) {
numberOfPeople -= PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
Anan lambar tana kare ayyukan haɓaka tare da mafi girman ƙima (MAX_TIP & MAX_PEOPLE). Bugu da kari, lambar tana kare ayyukan ragewa tare da mafi ƙarancin ƙima (MIN_TIP & MIN_PEOPLE).
Yanzu muna ɗaure maɓallan ga masu sauraro a cikin aikin initViews (#13):
private fun initViews() {
...
addTipButton.setOnClickListener(this)
subtractTipButton.setOnClickListener(this)
addPeopleButton.setOnClickListener(this)
subtractPeopleButton.setOnClickListener(this)
//TODO #15: Bind EditText to TextWatcher
}
Yanzu zaku iya ƙara jimillar lalacewa, tukwici, da adadin mahalarta taron. To, yanzu abu mafi mahimmanci ...
Sashin farashi
Wannan lambar tana ƙididdige farashi (#14):
private fun calculateExpense() {
val totalBill = billEditText.text.toString().toDouble()
val totalExpense = ((HUNDRED_PERCENT + tipPercent) / HUNDRED_PERCENT) * totalBill
val individualExpense = totalExpense / numberOfPeople
expensePerPersonTextView.text = String.format("$%.2f", individualExpense)
}
To, a nan ana kiran wani aiki wanda zai ba da damar yin la'akari da adadin mutanen da ke cikin kamfanin kuma a lissafta tip (#15):
private fun incrementTip() {
…
}
private fun decrementTip() {
…
}
private fun incrementPeople() {
…
}
private fun decrementPeople() {
…
}
Mun kaddamar da aikace-aikacen. Yana kama da aiki mai girma. Amma zai iya zama mafi kyau.
Idan kuka yi ƙoƙarin cire adadin kuɗin sannan ku ƙara yawan alamu ko abokai, app ɗin zai faɗo saboda babu rajistan farashin sifili tukuna. Bugu da ƙari, idan kuna ƙoƙarin canza adadin daftari, ba za a sabunta cajin ba.