Skip to content

Commit e31e688

Browse files
committed
Initial commit
0 parents  commit e31e688

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+10312
-0
lines changed

.buckconfig

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
[android]
3+
target = Google Inc.:Google APIs:23
4+
5+
[maven_repositories]
6+
central = https://repo1.maven.org/maven2

.eslintrc.js

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module.exports = {
2+
root: true,
3+
extends: '@react-native-community',
4+
};

.flowconfig

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
[ignore]
2+
; We fork some components by platform
3+
.*/*[.]android.js
4+
5+
; Ignore "BUCK" generated dirs
6+
<PROJECT_ROOT>/\.buckd/
7+
8+
; Ignore polyfills
9+
node_modules/react-native/Libraries/polyfills/.*
10+
11+
; These should not be required directly
12+
; require from fbjs/lib instead: require('fbjs/lib/warning')
13+
node_modules/warning/.*
14+
15+
; Flow doesn't support platforms
16+
.*/Libraries/Utilities/LoadingView.js
17+
18+
[untyped]
19+
.*/node_modules/@react-native-community/cli/.*/.*
20+
21+
[include]
22+
23+
[libs]
24+
node_modules/react-native/interface.js
25+
node_modules/react-native/flow/
26+
27+
[options]
28+
emoji=true
29+
30+
esproposal.optional_chaining=enable
31+
esproposal.nullish_coalescing=enable
32+
33+
module.file_ext=.js
34+
module.file_ext=.json
35+
module.file_ext=.ios.js
36+
37+
munge_underscores=true
38+
39+
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
40+
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
41+
42+
suppress_type=$FlowIssue
43+
suppress_type=$FlowFixMe
44+
suppress_type=$FlowFixMeProps
45+
suppress_type=$FlowFixMeState
46+
47+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
48+
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
49+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
50+
51+
[lints]
52+
sketchy-null-number=warn
53+
sketchy-null-mixed=warn
54+
sketchy-number=warn
55+
untyped-type-import=warn
56+
nonstrict-import=warn
57+
deprecated-type=warn
58+
unsafe-getters-setters=warn
59+
unnecessary-invariant=warn
60+
signature-verification-failure=warn
61+
deprecated-utility=error
62+
63+
[strict]
64+
deprecated-type
65+
nonstrict-import
66+
sketchy-null
67+
unclear-type
68+
unsafe-getters-setters
69+
untyped-import
70+
untyped-type-import
71+
72+
[version]
73+
^0.122.0

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.pbxproj -text

.gitignore

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# OSX
2+
#
3+
.DS_Store
4+
5+
# Xcode
6+
#
7+
build/
8+
*.pbxuser
9+
!default.pbxuser
10+
*.mode1v3
11+
!default.mode1v3
12+
*.mode2v3
13+
!default.mode2v3
14+
*.perspectivev3
15+
!default.perspectivev3
16+
xcuserdata
17+
*.xccheckout
18+
*.moved-aside
19+
DerivedData
20+
*.hmap
21+
*.ipa
22+
*.xcuserstate
23+
24+
# Android/IntelliJ
25+
#
26+
build/
27+
.idea
28+
.gradle
29+
local.properties
30+
*.iml
31+
32+
# node.js
33+
#
34+
node_modules/
35+
npm-debug.log
36+
yarn-error.log
37+
38+
# BUCK
39+
buck-out/
40+
\.buckd/
41+
*.keystore
42+
!debug.keystore
43+
44+
# fastlane
45+
#
46+
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47+
# screenshots whenever they are needed.
48+
# For more information about the recommended setup visit:
49+
# https://docs.fastlane.tools/best-practices/source-control/
50+
51+
*/fastlane/report.xml
52+
*/fastlane/Preview.html
53+
*/fastlane/screenshots
54+
55+
# Bundle artifact
56+
*.jsbundle
57+
58+
# CocoaPods
59+
/ios/Pods/

.prettierrc.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
bracketSpacing: false,
3+
jsxBracketSameLine: true,
4+
singleQuote: true,
5+
trailingComma: 'all',
6+
};

.watchmanconfig

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

App.js

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/**
2+
* Sample React Native App
3+
* https://github.com/facebook/react-native
4+
*
5+
* @format
6+
* @flow strict-local
7+
*/
8+
9+
import React from 'react';
10+
import {
11+
SafeAreaView,
12+
StyleSheet,
13+
ScrollView,
14+
View,
15+
Text,
16+
StatusBar,
17+
} from 'react-native';
18+
19+
import {
20+
Header,
21+
LearnMoreLinks,
22+
Colors,
23+
DebugInstructions,
24+
ReloadInstructions,
25+
} from 'react-native/Libraries/NewAppScreen';
26+
27+
const App: () => React$Node = () => {
28+
return (
29+
<>
30+
<StatusBar barStyle="dark-content" />
31+
<SafeAreaView>
32+
<ScrollView
33+
contentInsetAdjustmentBehavior="automatic"
34+
style={styles.scrollView}>
35+
<Header />
36+
{global.HermesInternal == null ? null : (
37+
<View style={styles.engine}>
38+
<Text style={styles.footer}>Engine: Hermes</Text>
39+
</View>
40+
)}
41+
<View style={styles.body}>
42+
<View style={styles.sectionContainer}>
43+
<Text style={styles.sectionTitle}>Step One</Text>
44+
<Text style={styles.sectionDescription}>
45+
Edit <Text style={styles.highlight}>App.js</Text> to change this
46+
screen and then come back to see your edits.
47+
</Text>
48+
</View>
49+
<View style={styles.sectionContainer}>
50+
<Text style={styles.sectionTitle}>See Your Changes</Text>
51+
<Text style={styles.sectionDescription}>
52+
<ReloadInstructions />
53+
</Text>
54+
</View>
55+
<View style={styles.sectionContainer}>
56+
<Text style={styles.sectionTitle}>Debug</Text>
57+
<Text style={styles.sectionDescription}>
58+
<DebugInstructions />
59+
</Text>
60+
</View>
61+
<View style={styles.sectionContainer}>
62+
<Text style={styles.sectionTitle}>Learn More</Text>
63+
<Text style={styles.sectionDescription}>
64+
Read the docs to discover what to do next:
65+
</Text>
66+
</View>
67+
<LearnMoreLinks />
68+
</View>
69+
</ScrollView>
70+
</SafeAreaView>
71+
</>
72+
);
73+
};
74+
75+
const styles = StyleSheet.create({
76+
scrollView: {
77+
backgroundColor: Colors.lighter,
78+
},
79+
engine: {
80+
position: 'absolute',
81+
right: 0,
82+
},
83+
body: {
84+
backgroundColor: Colors.white,
85+
},
86+
sectionContainer: {
87+
marginTop: 32,
88+
paddingHorizontal: 24,
89+
},
90+
sectionTitle: {
91+
fontSize: 24,
92+
fontWeight: '600',
93+
color: Colors.black,
94+
},
95+
sectionDescription: {
96+
marginTop: 8,
97+
fontSize: 18,
98+
fontWeight: '400',
99+
color: Colors.dark,
100+
},
101+
highlight: {
102+
fontWeight: '700',
103+
},
104+
footer: {
105+
color: Colors.dark,
106+
fontSize: 12,
107+
fontWeight: '600',
108+
padding: 4,
109+
paddingRight: 12,
110+
textAlign: 'right',
111+
},
112+
});
113+
114+
export default App;

README.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Alışveriş Uygulaması
2+
3+
Kullanıcıların ürün satın alabildiği bir uygulamaya ihtiyaç bulunmaktadır.<br />
4+
5+
Kullanıcılar uygulamanın açılış sayfasında sistemde bulunan tüm ürünleri toplu olarak görebilecek, isterse kategorilere göre ürün filtreleme işlemi yapabilecektir. Ürünler kategoriye göre dinamik olarak filtrelenecek ve ana sayfadaki listede güncellencektir. Kategoriler sistemden direkt olarak alınabilir.
6+
7+
Kullanıcı herhangi bir ürünün detayına giderse ürünü sepete ekleyebilecek ya da favoriye alabilecektir, favoriden kaldırabilecektir.
8+
9+
Sepete eklenen ürünler "Sepetim" ekranına gidildiğinde toplu olarak görüntülenecek, kullanıcı ürünleri satın alabilecektir. Kullanıcı herhangi bir ürünü sepetten kaldırabilecektir. Satın alma işleminde ürünler sepetten kaldırılacak, kullanıcıya bir geri bildirimde bulunulacak ve satın alma işlemi telefonun belleğine kaydedilecektir. Yine "Sepetim" ekranında kullanıcı sipariş geçmişini görüntüleyebilecektir. Bu işlem, ekranda bulunan "Geçmişi Görüntüle" gibi bir buton ile Modal penceresi açılarak gerçekleştirilebilir. Sipariş geçmişinde alınan ürünler ve toplam ödenen tutarın görüntülenmesi gerekmektedir.
10+
11+
Benzer şekilde favoriye eklenen ürünlerde cihazın belleğine kaydedilmesi gerekmektedir. Kısaca sipariş geçmişi ve favori ürünler uygulama açılıp kapansa da silinmemelidir.
12+
13+
**API:** https://fakestoreapi.com/docs
14+
15+
**ÖNEMLİ NOTLAR:**
16+
17+
- Uygulamada custom component yapısı ve custom hook yapısına dikkat edilmeli.
18+
- İş bölümü yapılmasında ve bunun için mevcut reponun Project kısmının kullanılmasında fayda var. (Template kısmından "Basic Kanban" seçebilirsiniz.).
19+
- İş parçacıkları ve görev dağılımı tamamiyle sizin insiyatifinize kalmış.
20+
- Tamamlanan projenin ekran görüntülerini mutlaka bu README üzerinden eklemeyi unutmayın.

__tests__/App-test.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* @format
3+
*/
4+
5+
import 'react-native';
6+
import React from 'react';
7+
import App from '../App';
8+
9+
// Note: test renderer must be required after react-native.
10+
import renderer from 'react-test-renderer';
11+
12+
it('renders correctly', () => {
13+
renderer.create(<App />);
14+
});

android/app/_BUCK

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# To learn about Buck see [Docs](https://buckbuild.com/).
2+
# To run your application with Buck:
3+
# - install Buck
4+
# - `npm start` - to start the packager
5+
# - `cd android`
6+
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7+
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8+
# - `buck install -r android/app` - compile, install and run application
9+
#
10+
11+
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12+
13+
lib_deps = []
14+
15+
create_aar_targets(glob(["libs/*.aar"]))
16+
17+
create_jar_targets(glob(["libs/*.jar"]))
18+
19+
android_library(
20+
name = "all-libs",
21+
exported_deps = lib_deps,
22+
)
23+
24+
android_library(
25+
name = "app-code",
26+
srcs = glob([
27+
"src/main/java/**/*.java",
28+
]),
29+
deps = [
30+
":all-libs",
31+
":build_config",
32+
":res",
33+
],
34+
)
35+
36+
android_build_config(
37+
name = "build_config",
38+
package = "com.week_4",
39+
)
40+
41+
android_resource(
42+
name = "res",
43+
package = "com.week_4",
44+
res = "src/main/res",
45+
)
46+
47+
android_binary(
48+
name = "app",
49+
keystore = "//android/keystores:debug",
50+
manifest = "src/main/AndroidManifest.xml",
51+
package_type = "debug",
52+
deps = [
53+
":app-code",
54+
],
55+
)

0 commit comments

Comments
 (0)